このディレクトリの索引
#  
#  ランダムに生成された0から99までの1000個の整数からなるリストの要素を既出のものは
#  除いて順に取り出す。
#  

'ランダムに生成された0から99までの1000個の整数からなるリストの要素を既出のものは除いて順に取り出す'(_要素) :-
        'ランダムに生成された0から99までの1000個の整数からなるリストの'(_1000個の整数からなるリスト),
        要素を既出のものは除いて順に取り出す(_1000個の整数からなるリスト,_要素).

'ランダムに生成された0から99までの1000個の整数からなるリストの'(_1000個のランダムに生成された整数からなるリスト) :-
        findall(_ランダムに生成された整数,(
                    '1000個の'(_),
                    'ランダムに生成された0から99までの整数'(_ランダムに生成された整数)),
                _1000個のランダムに生成された整数からなるリスト).

'1000個の'(_) :-
        for(1,_,1000).

'ランダムに生成された0から99までの整数'(_ランダムに生成された整数) :-
        _ランダムに生成された整数 is random(100).

要素を既出のものは除いて順に取り出す(_対象リスト,_要素) :-
        要素を取り出す(_対象リスト,_既に取り出された要素のリスト,_要素),
        既出のものは除いて(_既に取り出された要素のリスト,_要素).

要素を取り出す(_対象リスト,_既に取り出された要素のリスト,_要素) :-
        append(_既に取り出された要素のリスト,[_要素|_],_対象リスト).

既出のものは除いて(_既に取り出された要素のリスト,_要素) :-
        \+(member(_要素,_既に取り出された要素のリスト)).