【问题标题】:Is there any equivalent of placeholder in Elm?Elm 中是否有任何等价的占位符?
【发布时间】:2017-03-11 08:54:56
【问题描述】:

是否可以这样写函数:

find_parts: String -> List String -> List String                                                                        
find_parts word parts =
  List.filter String.contains _ word parts

代替:

find_parts: String -> List String -> List String
find_parts word parts =
  List.filter (\part -> String.contains part word) parts 

【问题讨论】:

    标签: lambda functional-programming placeholder elm


    【解决方案1】:

    如果有,不是documented

    替代解决方案,如果您只是想避免 lambda 语法,请使用现已弃用的 flip(如果您使用的是早于 0.19 的内容):

    find_parts: String -> List String -> List String
    find_parts word parts =
      List.filter (flip String.contains word) parts
    

    【讨论】:

    • 为了更简洁,你也可以避免parts参数
    • @gabrielperales 你的意思是find_parts word = List.filter (flip String.contains word)?是的,但这不是真正的问题,我不想过度使用无点风格:)
    • 现在怎么办? flip 已弃用。
    【解决方案2】:

    你也可以避免使用函数组合的 lambda:

    find_parts: String -> List String -> List String
    find_parts word parts =
      (List.filter << flip String.contains) word parts
    

    甚至只是:

    find_parts: String -> List String -> List String
    find_parts =
      List.filter << flip String.contains
    

    【讨论】:

      猜你喜欢
      • 2015-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-06
      • 2011-07-14
      • 2014-04-12
      • 1970-01-01
      • 2014-02-26
      相关资源
      最近更新 更多