8

Haskell 箭头通常被解释为表示计算的有向无环图 (DAG)。我正在寻找可以使用这种关系来帮助使用 Arrows 进行编程的工具或库代码。

从箭头到图形,工具可以帮助可视化箭头代码。由于代码对应于计算的 DAG,因此显示计算节点和输出到输入边缘的视觉表示是自然的。一个工具可以创建一个图形,以便使用标准图形工具进行查看和操作。

是否存在增强任意计算箭头类的箭头转换器,捕获 >>> 和 *** 操作提供的结构,并可以将计算作为基本箭头操作的图来检查?

从图到箭头,假设有一个 DAG,其节点是箭头操作。是否有一种工具可以从中构造一个计算整个 DAG 的箭头?

我在 Google 上搜索了很多关于 Haskell Arrows 的文章,但没有找到这样的可视化工具。我错过了什么?也许没有我想象的那么自然。

4

1 回答 1

8

一个好的起点是使用所谓的“免费Arrow”来指定您的箭头图。您可以在此 Stack Overflow 答案中Arrow找到 free的一种实现。将其视为图形的语法表示。Arrow

freeArrow的好处是它们保留了图形的结构,然后您可以将其显示为图表。显示连接图后,您可以使用解释器将 freeArrow转换为所需的Arrow. free 的一个很好的属性Arrow是,这样的解释器在定义上必须是唯一的(直到同构)(这是使其“自由”的属性之一)。

于 2014-02-23T21:27:20.360 回答