このディレクトリの索引
#  出題場所 :: http://toro.2ch.net/test/read.cgi/tech/1357191974/929
#  お題:3次元の配列を連番で初期化する。 
#  Jの場合 
#     a=:i.2 3 4 
#     a 
#   0  1  2  3 
#   4  5  6  7 
#   8  9 10 11 
#   
#  12 13 14 15 
#  16 17 18 19 
#  20 21 22 23 
#   
#     (<1;2;3){a 
#  23 
# 
# 

'3次元のならびを連番で初期化する。'(_3次元のならび,_初期化された3次元のならび) :-
        ならびの構造(_3次元のならび,_1,_2,_3),
        findall(_初期化された2次元ならび,(
                    nth0(N1,_3次元のならび,_),
                    findall(_初期化された1次元ならび,(
                                nth0(N2,_2次元ならび,_),
                                findall(N,(
                                            U is _1 * _2,
                                            U_2 is U + _3 - 1,
                                            between(U,U_2,N)),
                                        _初期化された1次元ならび)),
                            _初期化された2次元ならび)),
                _初期化された3次元ならび).

ならびの構造(LLL,_1,_2,_3) :-
        length(_3次元のならび,_1),
        _3次元のならび = [_2次元のならび|_],
        length(_2次元のならび,_2),
        _2次元のならび = [_1次元のならび|_],
        length(_1次元のならび,_3).