Prolog 将谓词应用到带有 maplist 的列表元素

问题描述

我正在尝试对列表的所有元素进行简单的转换:

 trans(X,M,Y):- Y is X*(-1) - M.

然后我在写:

maplist(trans,[1,2,3],NEW). 我得到的只是一个 true 而不是新列表..

解决方法

将值传递给参数,例如:

maplist(trans(5),[1,2,3],NEW)

Result: NEW = [-6,-7,-8]