26、在Prolog中,数字和算术运算是预定义的。假设我们使用子句“mean(A,B,C) :- C is (A+B)/2.”来定义谓词mean。加载这个程序并使用以下目标进行测试:“:- mean(2,4,X).”和“:- mean(2,4,6).”,分别说明这两个目标的执行结果。
- 对于目标
:- mean(2,4,X).,Prolog会计算(2 + 4)/2的值,得出答案X = 3。 - 对于目标
:- mean(2,4,6).,由于(2 + 4)/2的结果是3而不是6,所以该目标不成立,Prolog会返回no。
27、将替换 {X $→[X, Y], Y $→[X, Y]} 应用于项 f (X, Y)。
f ([X, Y], [X, Y])
28、在Prolog中,列表是预定义的,特别是谓词append是预定义的,但在本练习中我们将定义一个新的append:myappend([],Y,Y). myappend([H|T],Y,[H|U]) :- myappend(T,Y,U). 以下目标的答案是什么? :- myappend([1,2],[3,4,5],[1,2,3,4,5]). :- myappend([1,2],[3,4,5],[1,2]). :- myappend([1,2],[3,4,5],X). :- myappend([1,2],X,[1,2,3,4,5]). :- myappend(X,[3,4,5],[1,2,3,4,5]). :- myappend(X,Y,[1,2,3,4,5]). :- myappend(X,Y,Z). 解释这些答案。
-
:- myappend([1,2],[3,4,5],[1,2,3,4,5]).
答案

最低0.47元/天 解锁文章
29

被折叠的 条评论
为什么被折叠?



