このディレクトリの索引
#  
#  等差数列の再帰的ではない定義(実は再帰的なのだが)
#  

等差数列とは隣り合う2つの項の差が全て等しい数列である(_等差数列) :-
        隣り合う2つの項の差が(_等差数列,_隣り合う2つの項の差のリスト),
        全て等しい(_隣り合う2つの項の差のリスト,_).

隣り合う2つの項の差が(_等差数列,_隣り合う2つの項の差のリスト) :-
        findall(_差,(
                    append(_,[A,B|_],_等差数列),
                    _差 is B - A),
                _隣り合う2つの項の差のリスト).

全て等しい([A],A).
全て等しい([A|R],A) :-
        全て等しい(R,A).