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中是否有更高阶的运算符允许\t
lambda不必要?
我意识到使用lambda可能更具可读性,但是想知道这里应该使用什么样的组合器,因为toString
调用是在列表中.
如果你想避免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)