我可以从这个 Elm 表达式中删除 lambda 吗?
Can I remove the lambda from this Elm expression?
这是一个完整的 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))]))
我喜欢尽可能使用 |>
或其他高阶运算符,但考虑到 t
在上面的表达式中嵌套相对较深,我无法弄清楚表达这条线的好方法。 Elm 中是否有高阶运算符可以让 \t
lambda 变得不必要?
我意识到使用 lambda 可能更具可读性,但想知道这里应该使用哪种组合器,因为 toString
调用在列表中。
如果你想避免使用 lambda,那么从 values
开始会更容易,然后 "pipeline" 通过,一次将它转化为你想要的最终形式:
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 []
这是一个完整的 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))]))
我喜欢尽可能使用 |>
或其他高阶运算符,但考虑到 t
在上面的表达式中嵌套相对较深,我无法弄清楚表达这条线的好方法。 Elm 中是否有高阶运算符可以让 \t
lambda 变得不必要?
我意识到使用 lambda 可能更具可读性,但想知道这里应该使用哪种组合器,因为 toString
调用在列表中。
如果你想避免使用 lambda,那么从 values
开始会更容易,然后 "pipeline" 通过,一次将它转化为你想要的最终形式:
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 []