我需要在 prolog 中定义一个谓词,它将一个列表作为输入,对 >= 5 的数字的平方求和,并减去
这就是我目前所拥有的:-
pred([], 0).
pred([Head|Tail], Result) :-
gr85(Head),
pred(Tail, Total),
Result is Head*Head + Total.
pred([Head|Tail], Result) :-
leq2(Head),
pred(Tail, Total),
Result is Total - Head.
gr85(Number):-
Number >= 5.
leq2(Number):-
Number =< 2.
我的问题是如何排除 2 到 5 之间的任何内容。如果我在列表中输入 3,它将返回 false。
预期输入
pred([3,6,2,-1], Result).
预期产出
Result= 33 (6*6 -2-1)
添加“跳过全部”子句:
weird_sum([_|Tail], Result) :- weird_sum(Tail, Result).
我想当你分析时你会对Prolog的工作有一些了解where应增加该条款。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)