いくつかの入力に応じて真/偽に評価される述語 eval(A) があるとします
ここで、 List が空である場合に成功する別の述語 and(List, R)が必要です/List 内のすべての要素の eval の結合が R です。ここで、 R は true/falseです。
リストに項目 [a, b, c] がある場合、[eval(a) ^ eval(b) ^ eval(c)] == R を返します。
私の試み:
and([], true).
and([H|T], R) :- eval(H), and(T, R).
and([H|T], R) :- eval(H) = R.
しかし、R と適切に比較する方法がわかりません。