数値の分割を出力する定句文法を書こうとしています。たとえば、次のように?- w(3,L,[])
出力する必要があります。
[1,1,1]
[2,1]
[1,2]
[3]
私のコードは次のようになります。
w(PosNumber) --> {partition(PosNumber,L)},L.
partition(0,[]).
partition(PosNumber,[X|List]):-
between(1,PosNumber,X),
Y is (PosNumber-X),
partition(Y,List).
パーティション関数は正常に動作しているようですが、「w」を正しくインスタンス化する方法がわかりません。これが本当に基本的なものである場合は申し訳ありません。私はプロローグが初めてです。