【发布时间】:2019-11-24 02:00:29
【问题描述】:
我需要帮助来了解如何使用 [a(b,c),a(x,d)] 之类的列表 change(S,K,R) 用第二个列表 [c(a,x),c(b,y)] 中给出的值更改第一个列表 [a,c,b]
?- change([a,c,b],[k(a,x),k(b,y)],R).
R = [x,c,y].
% 我的程序,但它适用于第二个列表,它的列表元素类型错误 k(a,x) 但像 [a,x] 并且工作得有点差,因为如果返回 True 而不是 R= x,c,y我打印 R 值为 [y,c,x|_2826] 我用 ?-change([a,c,b],[a,x,b,y],R) 调用我的代码。
change([],[],[]):-!.
change([],[],R):-write(R),!.
change([H1|T1],[],[H1|R]):-change(T1,[],R),!.
change([H1|T1],[H2,H3|T2],R) :-
( ( H1==H2 , change(T1,T2,[H3|R]) )
; ( H1\==H2, change(T1,[H2,H3|T2],[H1|R]) )
).
【问题讨论】:
标签: prolog