2016-05-25 7 views
38

私はエルムを理解することを学んでいます。Todomvcの "![]"エルムコードの構文はどういう意味ですか

Todomvc example code

、そこに次のコードスニペットがある:I(私は思う)を理解するには、update関数はタイプMsgmsgに取り、タイプModelmodelことは何

-- How we update our Model on a given Msg? 
update : Msg -> Model -> (Model, Cmd Msg) 
update msg model = 
    case msg of 
    NoOp -> 
     model ! []  <-- What is this? 

、およびModelCmd Msgを含むタプルを返します。

しかし、私は返品陳述書をどのように読むべきですか?

model ! [] 

この声明は何を意味していますか? "モデル[何か]空のリスト"を返しますか?
これが説明されているドキュメントで何か迷っていましたか? (「ELMを!」グーグルは、これまで私を取得できませんでした:)

答えて

39

model ! []で感嘆符は、典型的なupdateステートメントから返されたタイプである(model, Cmd.batch [])のためだけの短手の機能、です。 It is defined here

+1

ありがとうございます。私は隠れた '(!):model - > List(Cmd msg) - >(model、Cmd msg)'行に出くわしましたが、 'モデルに変換できませんでした! [] 'うまくいけばもっと多くのドキュメントが続くでしょう。これまで有望な言語のような感じ。 – wintvelt

+7

これはelmの大きな問題の1つです。感嘆符 "!"をウェブ上でどのように検索するのでしょうか?私は "elm-lang感嘆符"の10種類を検索しようとしました。私は "haskell感嘆符"を検索しました。なぜ '(model、Cmd.batch [])'をそのまま書くことができないのですか?それはそれほど魔法のようになりません。たとえそれを "less cody"にする必要があるとしても、演算子を '' someOperator''のように使用しないでください。ちょうどいくつかの考え。 – abhinav

+11

Elm Packagesのファンシー検索([Elm Packages](http://package.elm-lang.org/)に行き、[ファンシー検索](http://klaftertief.github.io/elm-検索/))そのような機能を見つける。 [ここで '!'](http://klaftertief.github.io/elm-search/?q=!)を検索すると、正しい機能が呼び出されます。 –

関連する問題