Lambda 是否可以将maplist/3与';匿名';谓语

Lambda 是否可以将maplist/3与';匿名';谓语,lambda,prolog,meta-predicate,Lambda,Prolog,Meta Predicate,例如,我希望通过maplist/3实现以下伪代码: maplist( lambda X: Z/Y=X, to_lower(Z,LC), char_code(L,LC), return L/Y, ['A'/42, 'B'/500], Res). Res = ['a'/42, 'b'/500] 我知道,例如写作是可能的 maplist(plus(1), [1,2,3,4], Res). Res = [2,3,4,5]. 所以我可以定义伪代码lambda X:Z/Y=X,to_l

例如,我希望通过maplist/3实现以下伪代码:

maplist(
   lambda X: Z/Y=X, to_lower(Z,LC), char_code(L,LC), return L/Y,
   ['A'/42, 'B'/500],
   Res).
Res = ['a'/42, 'b'/500]
我知道,例如写作是可能的

maplist(plus(1), [1,2,3,4], Res).
Res = [2,3,4,5].
所以我可以定义伪代码
lambda X:Z/Y=X,to_lower(Z,LC),char_code(L,LC),将L/Y
作为一个普通谓词返回,并在映射列表中使用这个谓词

然而,我很好奇,在不创建一个全新谓词的情况下,是否可以这样做?

我之所以想这样做,是因为我觉得读起来更自然,而不是在代码中到处寻找谓词参见

?- maplist(\ (Z/Y)^(L/Y)^ ( char_code(Z,ZC),
                            to_lower(ZC,LC),
                            char_code(L,LC) ), ['A'/42, 'B'/500], Res).
Res = [a/42, b/500].