a) argl でインスタンス化されたリストのリストを取り、サブリストのヘッドのリストを arg2 として計算する述語 head/2 ( argl , arg2) を書きます。例えば:
?- heads([[3, 8], [9], [1, 2, 3], [a, b, c]], L).
L = [3, 9, l, a]
b) 2 つの入力を受け取るように mply を定義します。整数および整数のリスト。結果は、リスト内の各整数に入力整数を掛けて形成された整数のリストです。例えば:
?- mply(5, [1, 2, 3], X).
X = [5, 10, 15]
c) 算術式 Expr の値 (Value) を計算する compute (Expr, Value) という Prolog プログラムを作成します。要件は次のとおりです。 • 算術式は、単一の数値または [Exprl, Operator, Expr2] の形式のリストです。 • Exprl および Expr2 は算術式です。 • 演算子は、アトム プラスまたはアトム マイナスです。プログラムは、次のクエリに対して機能するはずです。
?- compute(7, Val).
Val = 7
?- compute([2,plus,[9,minus,1]], Val).
Val = 10
私はプロローグについて改訂を行っており、助けていただきありがとうございます。