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), return L/Yを通常の述語として定義し、この述語をマップリストで使用できます...
しかし、まったく新しい述語を作成せずにこれを行うことができるかどうか、私は興味がありますか?
このようにしたい理由は、述語を見つけるためにコードを飛び回るよりも、読む方が自然だと思うからです。