【发布时间】:2011-11-09 01:26:50
【问题描述】:
我在 google 上搜索,在 google 上搜索“site:haskell.org”,然后使用 hoogle。但我什么也没找到。语法框架 gf 中有一些代码引用了“Data.Relation”,但我找不到更多信息。
haskell 中有二进制关系库吗?
(我只想做一些基本的事情,比如找到传递闭包。)
ps:在agda中,很容易在标准库中找到关系
=== 编辑:===
我只需要有限的关系。
只是一个获取所有相关事物(数学对象)的函数。这也是关系的传递闭包。
最新更新:
我刚刚在 github 上找到了 Binary Relations 的源代码:
https://github.com/fmaste/hgraph/blob/master/src/Data/Collection/Relation/Binary.hs
https://github.com/fmaste/hgraph/blob/master/src/Data/Collection/Relation/Binary/Simple.hs https://github.com/search?langOverride=&language=Haskell&q=relation&repo=&start_value=1&type=Code&x=0&y=0
【问题讨论】:
-
我什么都不知道。你需要什么样的观察?例如。
type Rel a b = a -> b -> Bool代表可判定的关系,但你不能。枚举其域。如果您只需要有限的关系,这很容易,但除此之外,设计空间很微妙。 -
感谢 luqui 的评论。那么关系应该如何实现呢?使用 Rel a b 类型,使用 Data.Set 还是使用箭头?
-
更新,我刚刚在github上发现了一些东西:github.com/fmaste/hgraph/blob/…
-
这就是我的问题所在。这取决于您需要他们提供什么。你说你需要计算传递闭包,但是你想如何观察传递闭包?有序对的列表?一个布尔值告诉你什么时候有一对?这些东西在数学上是等价的,但在计算上是等价的。你为什么想要一个二元关系库——这将有助于回答这个问题。
-
我正在使用 SKOS(语义网)。一个 skos 概念可以有多个更广泛的概念,我需要一些数据结构来表示 skos 概念。一个 skos 概念也可以与多个其他 skos 概念和其他特征相关。详情请看我的另一个问题:stackoverflow.com/questions/8032731/…
标签: haskell