2015-12-07 6 views
7

ハスケルでは、$演算子を使用してコードの一部をクリーンアップして、括弧の必要性を取り除くことができます。

elmはこの演算子をサポートしていますか、それとも何か?

私はそれを自分で定義することができますが、これは組み込みのものであることを期待していました。ここで

は、それがどのように動作するかです:

import Html 
import List exposing (map, foldr) 

datas = [("a", 1), ("b", 2), ("c", 3)] 

{--} 
($) : (a -> b) -> (a -> b) 
($) a b = a b 
infixr 0 $ 
--} 

main = 
    {-- replace all these parens 
    Html.text (toString (foldr (++) "" (map fst datas))) 
    --} 
    Html.text $ toString $ foldr (++) "" $ map fst datas 

答えて

12

はい、私たちは<|代わりの$を使用しています。私たちはF#からフリップされたバージョン|><<(組成は.)とフリップされたバージョン>>とそれを借りました。
これらが導入されると、人々は自然に「パイプライン」と呼ばれるスタイルに向かって動いていきます。ここでは、データを取り出して、|>演算子を使用して2つのステップで変換します。最近では、Elmコードのコードパターンは<|より一般的です。例えば

update : (Float, Keys) -> Model -> Model 
update (dt, keys) mario = 
    mario 
    |> gravity dt 
    |> jump keys 
    |> walk keys 
    |> physics dt 

Mario example on the websiteからの引用)

+1

ニース。私はドキュメントでこれを見ていましたが、同じ方法でそれを整理する方法を接続していませんでした。私は間違いなく '|>'を使い、 '$'より自分のコードを読み込み、コードを後方に読む必要があります –

+0

これはclojureの "thrush"演算子ですが、カリード関数マクロとしてではなく。 –

関連する問題