首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在core.logic中,在两个方向上的投影是否算作关系?

在core.logic中,在两个方向上的投影是否算作关系?
EN

Stack Overflow用户
提问于 2013-03-31 14:44:54
回答 1查看 134关注 0票数 1

我知道core.logic中的project不是关系型的。

然而,似乎我可以通过在conda中双向投影来获得类似关系的行为,例如:

代码语言:javascript
复制
(defn lifto-with-inverse
  "Lifts a unary function and its inverse into a core.logic relation."
  ([f g]
    (fn [& vs]
      (let [[x y] vs]
        (conda 
          [(pred x number?) (project [x] (== y (f x)))]
          [(pred y number?) (project [y] (== x (g y)))])))))

(let [inco (lifto-with-inverse inc dec)]
   (run* [q] (inco q 3)))
=> 2

这算不算关系操作?或者,是否还缺少其他使其成为非关系型的东西?

EN

回答 1

Stack Overflow用户

发布于 2013-04-01 04:05:03

似乎在这种情况下,其中一个参数必须是有根据的,使它不是相关的。

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

https://stackoverflow.com/questions/15727088

复制
相关文章

相似问题

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