【发布时间】:2019-11-10 23:35:26
【问题描述】:
我有一个从谓词生成的列表,如下所示:
[a, b, c]
我还有以下谓词 p/3 可以应用于我的列表中的每个元素:
?- p(a, NewList, Number).
它会返回:
NewList = [c, d],
Number = 2.
其中 NewList 是从 a 元素新生成的列表,Number 是 NewList 的长度。
问题:
我想将p/3 谓词应用于所有元素,并得到
- 一个列表,由所有 NewLists 中的所有元素组成,也就是所有 NewLists 附加在一起
- 以及所有数字的总和。
我试着这样做:
loop_list([Element|[]], NewList, Number) :-
p(Element, NewList, Number).
loop_list([Head|Tail], [Tmp|NewList], Number) :-
loop_list(Tail, Tmp, Number).
但失败了。
【问题讨论】: