如何解决删除序言中的列表项的问题
我在序言中的代码
:- dynamic kitchenfurniture/1.
kitchenfurniture([furniture(fridge,1),furniture(table,2),furniture(chair,1)]).
writel([H|T]) :- write(H),nl,writel(T).
whatkitchenfurniture :- kitchenfurniture(X),writel(X).
addkitchenfurniture(X) :- kitchenfurniture(Y),append(Y,[X],Z),retract(kitchenfurniture(Y)),assert(kitchenfurniture(Z)).
deletekitchenfurniture(X) :- kitchenfurniture(Y),delete(X,Y,assert(kitchenfurniture(Z)).
当我在控制台输入代码时
它不会从列表中删除项目
问题与行代码 deletekitchenfurniture(furniture(fridge,1))。
解决方法
很难理解你在控制台中到底输入了什么;你为什么不展示它?
这很可能是错误的:
?- deleteaddkitchenfurniture('furniture(fridge,1)').
正确的做法可能是:
?- deleteaddkitchenfurniture(furniture(fridge,1)).
那里没有单引号。如果你把它放在单引号中,它就会变成一个带有一些括号的原子。如果您不引用,则它是一个复合词,如您在此处的原始列表所示:
kitchenfurniture([furniture(fridge,1),furniture(table,2),furniture(chair,1)]).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。