我正在考虑如何将两个列表的所有元素彼此相乘。然后我要把所有结果都放进去List3
。例如,
List1 = [1,3,5].
List2 = [2,6,7].
List3
应该包含[1x2、1x6、1x7、3x2、3x6、3x7、5x2、5x6、5x7]。到底;
List3 = [2, 6, 7, 6, 18, 21, 10, 30, 35].
有可能这样做吗?怎么做?我找不到正确的方法。
好吧,首先来看看这个问题,它对swi-prolog中的每个列表元素以及其他元素执行操作,以了解如何对进行for-each
操作lists
。
第二,这是代码:
prod(X,[],[]).
prod(X,[HEAD|TAIL],L) :- prod(X,TAIL,L1), W is X * HEAD, L = [W|L1].
prod2([],Y,[]).
prod2([HEAD|TAIL],Y,L) :- prod(HEAD,Y,L1), prod2(TAIL,Y,L2), append(L1,L2,L).
输出:
?- prod2([1,3,5] ,[2,6,7],G).
G = [2, 6, 7, 6, 18, 21, 10, 30, 35] .
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句