首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MiniKanren有"not“操作符吗?

MiniKanren有"not“操作符吗?
EN

Stack Overflow用户
提问于 2017-08-11 21:56:27
回答 2查看 881关注 0票数 5

MiniKanren有"not“操作符吗?

例如,如何表示Prolog的

代码语言:javascript
复制
a :- b, not(c)

如果a为真而c为假,则b为真(Prolog使用否定作为失败,即如果不能证明not(c)被认为是证明的)

Prolog的not也适用于非地面表达式。

代码语言:javascript
复制
a(X, d(Y)) :- b(d(X), d(Y)), not(c(d(X)))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-12 21:00:48

https://github.com/zhjhxxxjh/ykanren说,答案是否定的。

票数 4
EN

Stack Overflow用户

发布于 2017-08-13 04:11:27

在小型achieve中没有not操作符,但您可以实现与conda类似的功能。

代码语言:javascript
复制
(defmacro not
  "fail if the given goal succeeds, use with extreme caution"
  [goal]
  `(conda 
     [~goal fail]
     [succeed]))

请参阅我对谷歌集团的类似问题

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

https://stackoverflow.com/questions/45644304

复制
相关文章

相似问题

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