0

数値の分割を出力する定句文法を書こうとしています。たとえば、次のように?- 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」を正しくインスタンス化する方法がわかりません。これが本当に基本的なものである場合は申し訳ありません。私はプロローグが初めてです。

4

0 に答える 0