2017-10-15 85 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