2016-06-24 14 views
2

1998年、John Hughesは、HaskellのArrow型クラスをthis paperに提案しました。このタイプのクラスには、***&&&のような、非英数字の演算子がいくつか付属しています。しかし、彼はこれらの演算子のために発音可能な名前を与えていない。HaskellのArrow演算子の「実際の」名前は何ですか?

ハスケルのモナド型クラスは、>>=と同様のことが続き、これはbindと発音されます。

私の質問は、矢印演算子***&&&の発音の仕方です。それとも彼らは発音可能な名前を持っていますか?ハスケラーは会話でこれらの演算子をどのように参照していますか?

+1

[申請者(および友人)の方法には人にやさしい名前がありますか?](http://stackoverflow.com/questions/5836640/are-there-human-friendly-names-for-applicative-and) -friends-methods) – amalloy

+0

提案された複製は '***'と '&&&'について尋ねますが、その質問に対する回答はどれも解決しません。質問の著者はあなたが答えを考えるかもしれないと推測します。 – chepner

答えて

5

Control.Arrowは「分割」と「ファンアウト」と呼ばれます。それは公式の名前のためにあなたが得られる最も近いものです。

しかし、矢印の特定のケースでは、私はコンベヤベルトに接続された工場機械の点でそれらを考える傾向があります。あなたは音素(必ずしも実際の機能)を定義して起動する場合、これはあなたにこの語彙で

belt = id 
pipe-into = (.) 
dupe = belt &&& belt 
next-to = (***) 
process-with = arr 

を非常に豊富な語彙を与え、あなたは「belta」としてfirst aを発音し、beltネクスト」としてsecond aa」にa &&& bが「dupeがパイプされる(aの次にb)」となる。

また、ArrowApplyの素晴らしい視覚化を提供します。 2つのコンベアベルトを取り入れているマシンがある場合、工場のマシンはArrowApplyできます.1つは他のマシン用、もう1つは最初のマシンに収まるオブジェクト用です。このマシンは入ってくるオブジェクトを入ってくるマシンに入れ込み、最初のマシンが放出したものを放出し、その後マシンを投げ捨てます。

また、工場に魔法の箱を与え、魔法の箱の中にあるものの構造の一部にコミットするよう工場に尋ねるという点で、ArrowLoopの視覚化があまり良くありませんボックスを開いたときにコミットされた構造を魔法のように利用できるようにします。

関連する問題