以图形形式查看Haskell箭头的工具
Haskell箭头通常被解释为表示计算的有向无环图(DAG)。我正在寻找工具或库代码,它们将使用这种关系来帮助使用箭头进行编程 从箭头到图形,一个工具可以帮助可视化箭头代码。由于代码对应于计算的DAG,因此显示计算节点和输出到输入边的可视化表示是自然的。工具可以创建一个图形,以便使用标准图形工具进行查看和操作 是否有Arrow transformer可以扩展任意计算Arrow类,捕获>>>和***操作提供的结构,并可以将计算作为基本Arrow操作的图形进行检查 从图形到箭头,假设有一个DAG,其节点是箭头操作。有没有一个工具可以从中构造一个计算整个DAG的箭头以图形形式查看Haskell箭头的工具,haskell,graph,arrows,Haskell,Graph,Arrows,Haskell箭头通常被解释为表示计算的有向无环图(DAG)。我正在寻找工具或库代码,它们将使用这种关系来帮助使用箭头进行编程 从箭头到图形,一个工具可以帮助可视化箭头代码。由于代码对应于计算的DAG,因此显示计算节点和输出到输入边的可视化表示是自然的。工具可以创建一个图形,以便使用标准图形工具进行查看和操作 是否有Arrow transformer可以扩展任意计算Arrow类,捕获>>>和***操作提供的结构,并可以将计算作为基本Arrow操作的图形进行检查 从图形到箭头,假设有一个DAG,其
我在谷歌上搜索了很多关于Haskell Arrows的文章,但没有找到这样的可视化工具。我错过什么了吗?也许没有我想象的那么自然。一个好的起点是使用所谓的“自由
箭头”指定箭头图。您可以找到免费Arrow
s的一个实现。将其视为箭头
图形的语法表示
freeArrow
s的好处在于它们保留了图形的结构,然后可以将其显示为图表。显示连接图后,您可以使用解释器将自由的箭头
转换为所需的箭头
。freeArrow
s有一个很好的特性,就是这样一个解释器在定义上必须是唯一的(直到同构)(这是使它“免费”的特性之一)。这是对我问题中“Arrow-to-graph”部分的一个很好的回答。看起来比我的“Arrow transformer”想法要好。@pkturner我想你可能想要的是Arrows
语言扩展,它可以让你从一堆边构建Arrow
。基本上,每当你写y的时候,这就是我一直在寻找的东西。天哪!可以编写示例(a1,a0),但仍然希望得到一个有助于使用“图形到箭头”工具的响应。我开始理解,当基本箭头具有元组类型时,图形需要比简单的DAG更具表现力,以便识别哪个输出指向哪个输入。这类图有名称或理论吗?我不能确切地告诉你关于“图到箭头”的问题,但是如果你有一个表示DAG的类型,它的节点是箭头操作,听起来你可以给那个类型一个Arrow实例,然后就可以完成了。@Tom:如果dag对元组类型不做任何花哨的事情,那就很容易了。例如,我就想到了!。看起来,当我填写我需要的更具表现力的图形类型的详细信息时,您的建议仍然可行。