Prologでは再帰的に処理する方法と、findallでリストを生成する方法があると聞きました。findallの使い方を教えてください。
Prologでは再帰的に処理する方法と、findallでリストを生成する方法があると聞きました。
下に、再帰的な処理のプログラムがありますが、 findallを使うプログラムの書き方を教えて下さい。
%
% <<問題>>
% 初心者向きのPrologの問題。100個の乱数値(0-99)をリストに生成してください。
% 乱数値(0-99)は _乱数値 is random(100) で取れることとしてください。
%
% 初心者でない人には、「あなたは、何通りのプログラムパターンが脳裏を過ぎりますか?」
%
'100個の乱数値(0-99)をリストに生成します'(_乱数リスト) :-
'100個の'(_乱数リスト),
'乱数値(0-99)をリストに生成します'(_乱数リスト).
'100個の'(_乱数リスト) :-
length(_乱数リスト,100).
'乱数値(0-99)をリストに生成します'([]).
'乱数値(0-99)をリストに生成します'([_乱数値|R]) :-
_乱数値 is random(100),
'乱数値(0-99)をリストに生成します'(R).