長さn桁のリストに記入する必要があります。n-1が1から9の範囲にあり、1桁が1から99の範囲にあることを知っています。私は次のようにしました。
generate([First|Next],Czynniki):-
between(1,99,First),
generate2(Next).
generate2(Next):-
sublist([1,2,3,4,5,6,7,8,9],Next).
sublist([],[]).
sublist([H|T],[H|S]):-
sublist(T,S).
sublist([_|T],S):-
sublist(T,S).
このようにすることで、同じソリューションのいくつかを生成します。繰り返しなしでリストを生成する方法を知っているかもしれませんか?
編集
わかりやすくするために、私(@repeat)は、OPによる次の関連コメントを追加しました。
入り口には
N
、未定義の変数の長さのリストがあります。そして、私のリストに記入したい:N-1
間隔からの数字1-9
と範囲内の1つの数字1-99
。例:N = 5、L =[56,2,3,4,8]..。