Questions tagged «adjacency-list»


1
有效图形的类型可以在Dhall中编码吗?
我想在Dhall中代表一个Wiki(一组包含有向图的文档)。这些文档将呈现为HTML,我想防止产生断开的链接。如我所见,这可以通过使无效的图形(具有不存在的节点的链接的图形)无法通过类型系统来表示,或者通过编写函数以返回任何可能的图形中的错误列表(例如“在可能的图形中”)来实现。 X,节点A包含到不存在的节点B“的链接。 天真的邻接列表表示可能看起来像这样: let Node : Type = { id: Text, neighbors: List Text } let Graph : Type = List Node let example : Graph = [ { id = "a", neighbors = ["b"] } ] in example 如本例所示,此类型接受不对应于有效图的值(不存在ID为“ b”的节点,而ID为“ a”的节点规定了ID为“ b”的邻居)。而且,由于Dhall不支持按设计进行字符串比较,因此无法通过折叠每个Node的邻居来生成这些问题的列表。 是否有任何表示形式可以通过类型系统计算断开链接列表或排除断开链接? 更新:我刚刚发现Naturals在Dhall中具有可比性。因此,我想可以编写一个函数来识别任何无效边缘(“断开的链接”),并且如果标识符是Naturals,则可以重复使用标识符。 但是,关于是否可以定义Graph类型的最初问题仍然存在。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.