このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1163319215/85
#  >>84さん指摘ありがとうございます 
#   
#  でもちょっと違うのです><  
#  たとえば、1 5  9 13 
#       2 6 10 14 
#       3 7 11 15 
#       4 8 12 16 
#   
#  について、 
#  1 
#  2 
#  3 
#  … 
#  16 
#   
#  といってから順番を変更して 
#   
#  16 12  8  4 
#  15 11  7  3 
#  14 10  6  2 
#  13  9 5  1 
#   
#  という風に並べたいのです 
# 
# 

/*
'たとえば、1 5  9 13 
      2 6 10 14 
      3 7 11 15 
      4 8 12 16 
  
 について、 
 1 
 2 
 3 
 … 
 16 
  
 といってから順番を変更して 
  
 16 12  8  4 
 15 11  7  3 
 14 10  6  2 
 13  9 5  1 
  
 という風に並べたいのです'(LL1,LL2) :-
        行列の点対称的な並べ替え(LL1,[],LL2).
*/

行列の点対称的な並べ替え(LL1,LL2) :-
        行列の点対称的な並べ替え(LL1,[],LL2).

行列の点対称的な並べ替え([],LL,LL) :- !.
行列の点対称的な並べ替え([L1|R1],LL2,LL) :-
        reverse(L1,RL1),
        行列の点対称的な並べ替え(R1,[RL1|LL2],LL).