a) 编写一个谓词 head/2 ( argl , arg2),它采用 argl 中列表的实例化列表,并将子列表的头列表计算为 arg2。例如:
?- heads([[3, 8], [9], [1, 2, 3], [a, b, c]], L).
L = [3, 9, l, a]
b) 定义 mply 接受两个输入;整数和整数列表。结果是通过将列表中的每个整数乘以输入整数形成的整数列表。例如:
?- mply(5, [1, 2, 3], X).
X = [5, 10, 15]
c) 编写一个名为 compute (Expr, Value) 的 Prolog 程序,它将计算算术表达式 Expr 的值 (Value)。要求如下: • 算术表达式可以是单个数字,也可以是 [Exprl, Operator, Expr2] 形式的列表 • Exprl 和 Expr2 是算术表达式 • 运算符是原子加号或原子减号。您的程序应该适用于以下查询:
?- compute(7, Val).
Val = 7
?- compute([2,plus,[9,minus,1]], Val).
Val = 10
我正在修改序言,非常感谢任何帮助,谢谢