我可以从这个Elm表达式中删除lambda吗?

Ray*_*oal 4 lambda combinators higher-order-functions elm

这是一个完整的Elm脚本,它将一堆元组放入HTML <ul>元素中.

import Html exposing (ul, li, text)
import List exposing (map)

values = [(1,2,3), (4,5,6), (7,8,9)]

main =
  ul [] (values |> map (\t -> li [] [text(toString(t))]))
Run Code Online (Sandbox Code Playgroud)

我喜欢|>在可能的情况下使用其他高阶运算符,但鉴于t上面表达式中相对较深的嵌套,我无法找到表达这一行的好方法.在Elm中是否有更高阶的运算符允许\tlambda不必要?

我意识到使用lambda可能更具可读性,但是想知道这里应该使用什么样的组合器,因为toString调用是在列表中.

rob*_*oby 6

如果你想避免lambda它更容易开始values并"管道"它通过,一次转换它一步,使它到你想要的最终形式:

import Html exposing (ul, li, text)
import List exposing (map, repeat)

values = [(1,2,3), (4,5,6), (7,8,9)]

main
  = map toString values
  |> map text
  |> map (repeat 1)
  |> map (li [])
  |> ul []
Run Code Online (Sandbox Code Playgroud)