首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prolog函数为arity =0

Prolog函数为arity =0
EN

Stack Overflow用户
提问于 2022-04-07 02:14:04
回答 1查看 86关注 0票数 0

我试图用prolog编写以下内容:

如果代理有箭头,则has箭头/0返回true,并在代理执行射击操作后开始返回false。

代理从拥有箭头开始。

我的代码如下:

代码语言:javascript
复制
assert(hasArrow). 
hasArrow :- (A = shoot -> false ; assert(hasArrow)).

这是正确的吗?

EN

回答 1

Stack Overflow用户

发布于 2022-04-07 02:55:47

您可以按以下方式解决该问题:

代码语言:javascript
复制
:- dynamic(has_arrow/0).

has_arrow.

shoot :- retract(has_arrow).

get_arrow :- assertz(has_arrow).

示例:

代码语言:javascript
复制
?- has_arrow.
true.

?- shoot.
true.

?- has_arrow.
false.

?- shoot.
false.

?- get_arrow.
true.

?- has_arrow.
true.

?- shoot.
true.

?- has_arrow.
false.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71775566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档