我试图编写一个输出数字分区的明确的子句语法。例如?- 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'。对不起,如果这是非常基本的,我对prolog很新。