1

プロローグでブール値のリストを生成する必要があります。

?- gener_booleans(Xs,3).
Xs = [true, true, true] ;
Xs = [true, true, false] ;
...
Xs = [false, false, false] ;

これは別のソリューションへのリンクですが、ブール値に適用する方法がわかりません。 プロローグでリストのすべてのセットを取得する PS リストの量は 2^N です。ありがとう!

4

2 に答える 2

3

Prologにmaplist述語(SWIやYAPなど)がある場合:

booleans(Xs, N) :-
    length(Xs, N),
    maplist(boolean, Xs).
boolean(true).
boolean(false).

booleans(ブール値もチェックできるため、述語の名前を変更しました。Prologでプログラミングする場合は、宣言型の名前を優先します。)

于 2012-04-29T16:07:00.467 に答える
1
gener_booleans([],0).
gener_booleans([true|Xs],N) :- N>0, N1 is N-1, gener_booleans(Xs,N1).
gener_booleans([false|Xs],N) :- N>0, N1 is N-1, gener_booleans(Xs,N1).
于 2012-04-29T15:44:08.403 に答える