2017-10-15 25 views
1

私はmap(_ => _)のes2015イディオムを使用していましたが、1つのアンダースコアがエルムのラムダ関数の有効な変数名ではないようです。Elmで変数 `_`を見つけることができません

これは間違いありませんか?もしそうなら、これを文書化/説明するリソースはありますか?

次はCannot find variable `_`

view : Model -> Html Msg 
view model = 
    div [] 
     [ ul [] 
      (List.map (\_ -> li [] [ text _.message ]) model.messages) 
     ] 

で失敗しかし、これは動作します:

  ... 

      (List.map (\a -> li [] [ text a.message ]) model.messages) 

答えて

5

アンダースコアは、あなたがそれを示してどのような値は無視されることを意味する予約文字です。したがって、関数の本体の変数であるかのように使用することはできません。

+0

ねえ、ありがとう。私は見たことがあるオンラインガイドのいずれかでこれについての文書を見つけることができないようです。標準的なリソースがどこかにあるかどうか知っていますか? – mzmm56

+0

エルムのガイドでは正式な説明が見つかりませんが、エルムはハスケルの祖先であり、[パターンマッチングの下線機能を継承しました](https://en.wikibooks.org/wiki/Haskell/Pattern_matching)。 –

+0

ああ、ありがとう、リンクありがとう – mzmm56

関連する問題