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