【发布时间】:2019-09-23 02:22:34
【问题描述】:
如何包装列表中的每个元素?
我有这样的(2*3*4*...)^6
如何使用此输出创建列表:2^6 * 3^6 * 4^6 * ...
我正在考虑使用 maplist 做一些简单的事情,但我不确定如何在第一个参数中向函数发送参数。
simplify(X^Y,R):- X=..[*|Args], maplist(?^Y, Args, Args2), R=..[*|Args2], !.
:- simplify((2*x)^6, (2^6) * (x^6)). %should be true
顺便用Swi-prolog
【问题讨论】:
-
可能想查看library(yall),它为您提供了 lambda 抽象。否则你需要做一个谓词来传递给
maplist/3。