0
我必须编写一个谓词,它将列表中的所有项目相加。这些项目可以是列表中的列表。例如, sum1([1,[2,3],4,[5]],X)。 我有一些代码,应该工作,但是给一个参数没有充分实例化的错误。我对prolog非常陌生,但这些对我来说看起来很好。这里是我这个谓词(功能)全码序言总和所有投掷错误
suml([],0).
suml([H|T],X) :- atomic(H),S2 is H + X, suml(T,S2).
suml([H|T],X) :- suml(H,S1), S3 is S1 + X, suml(T,S3).
再次感谢您!我试过这第二行,但它不工作 suml([H | T],X):suml(T,X),suml(H,S1),S1 + X.基本上这就是说如果我有一个列表,总结这一点,并添加它。但这是行不通的,我即将开始undefined程序 – 2014-12-08 00:31:43
nvm!我错了,因为教师的例子,我被X中的代码弄糊涂了......我现在明白了,它应该是suml([H | T],X): - suml(T ,S1),sum1(H,S2),X是S1 + S2。 – 2014-12-08 00:34:37