8

Haskell の矢印は、一般に、計算の有向非巡回グラフ (DAG) を表現するものとして説明されています。この関係を使用して、Arrows を使用したプログラミングを支援するツールまたはライブラリ コードを探しています。

Arrow からグラフまで、ツールは Arrow コードを視覚化するのに役立ちます。コードは計算の DAG に対応するため、計算ノードと出力から入力へのエッジを示す視覚的表現は自然です。ツールは、標準のグラフ ツールで表示および操作するグラフを作成できます。

>>> および *** 操作によって提供される構造をキャプチャし、基本的な Arrow 操作のグラフとして計算を検査できるようにする、任意の計算上の Arrow クラスを拡張する Arrow トランスフォーマーはありますか?

グラフから矢印へ、ノードが矢印操作である DAG があるとします。これから DAG 全体を計算する Arrow を構築するツールはありますか?

Haskell Arrows について書かれたものの多くを Google で検索しましたが、そのような視覚化ツールは見つかりませんでした。私は何か見落としてますか?おそらく、私が期待するほど自然なフィット感はありません。

4

1 に答える 1

8

良い出発点は、「無料」として知られているものを使用して矢印グラフを指定することですArrowArrowfreeの1 つの実装は、この Stack Overflow answer にあります。Arrowこれをグラフの構文表現と考えてください。

freeArrowの良い点は、グラフの構造が保持されることです。これにより、グラフを図として表示できます。接続のグラフを表示した後、インタプリタを使用して自由Arrowを目的の に変換できますArrow。freeArrowが持つ優れた特性の 1 つは、そのようなインタープリターは定義上 (同形性まで) 一意でなければならないということです (これは、それを「フリー」にする特性の 1 つです)。

于 2014-02-23T21:27:20.360 に答える