Arrowって何よということでhttp://www.haskell.org/arrows/を読んでいたのですが、いまいちありがた味が分からなかったので、実際に使ってみることにしました。計算を抽象化したものでMonadより強力だそうですが…。 Arrowで抽象化された計算は直列に繋げたり、並列につなげたり、ループさせてみたり色々結合することができます。これによって色んなことが出来るのですが、まずはArrowの発想と直感的に似ている電気回路をシミュレートすることにします。目標は加算回路を作ること。Arrow周りの細かい関数の定義はリンク先やリファレンスに任せることにして、実例から入っていきます。 とりあえずArrowを使えるようにしないと話が始まらないですね。 import Control.Arrow 今回の論理素子は普通の関数と同じように入力が来たら出力を返すだけのものです。この場合は最初か