如何转换为Definite Clause语法

时间:2017-12-19 16:23:27

标签: prolog grammar dcg integer-partition

我试图编写一个输出数字分区的明确的子句语法。例如?- 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很新。

0 个答案:

没有答案