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