簡體   English   中英

Prolog-添加列表編號

[英]Prolog - Add list numbers

我正在嘗試解決一些序言練習,以學習該語言,並且在序言列表中添加數字時遇到問題。

例如,我有列表[1,2,3],而我想將其作為輸出數字6。

我寫了這段代碼,但是沒有用。

list_adder([H|T],S):- S is H + T.

有誰能解釋為什么?

嘗試這個:

list_adder([ ],0).
list_adder([X|L],Sum) :- list_adder(L,SL), Sum is X + SL.

這是因為示例中的H + T1 + [2, 3]匹配,這沒有任何意義。 您應該進一步處理[2, 3] ,如Third的答案所示。


list_adder(L,X),
        list_adder(L,[],X).

list_adder([],L,X) :-
        length(L,X).
list_adder([N|R1],L1,X) :-
        length(L,N),
        append(L1,L,L2),
        list_adder(R1,L2,X).

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM