2017-10-15 61 views
1

我習慣於使用es2015成語map(_ => _),但似乎單個下劃線不是Elm的lambda函數的有效變量名稱。在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

我在Elm指南中找不到正式的解釋,但Elm來自Haskell並[在模式匹配中繼承了下劃線功能](https://en.wikibooks.org/wiki/Haskell/Pattern_matching)。 –

+0

啊,太好了,非常感謝這個鏈接 – mzmm56