榆树支持美元运算符 ($) 吗?
Is the dollar operator ($) supported in elm?
在 Haskell 中,您可以使用 $
运算符来清理代码位,不再需要括号。
elm 是否支持此运算符或类似的东西?
我可以自己定义它,但我希望这是内置的东西。
工作原理如下:
import Html
import List exposing (map, foldr)
datas = [("a", 1), ("b", 2), ("c", 3)]
{--}
($) : (a -> b) -> (a -> b)
($) a b = a b
infixr 0 $
--}
main =
{-- replace all these parens
Html.text (toString (foldr (++) "" (map fst datas)))
--}
Html.text $ toString $ foldr (++) "" $ map fst datas
是的,我们使用 <|
而不是 $
。我们从 F# 中借用它以及翻转版本 |>
和 <<
用于组合 .
和翻转版本 >>
.
一旦引入这些,人们自然而然地被称为 'pipelining' 的风格所吸引,在这种风格中,您可以获取一些数据并使用 |>
运算符通过几个步骤对其进行转换。如今,与使用 <|
相比,这是 Elm 代码中更常见的代码模式。
例如:
update : (Float, Keys) -> Model -> Model
update (dt, keys) mario =
mario
|> gravity dt
|> jump keys
|> walk keys
|> physics dt
在 Haskell 中,您可以使用 $
运算符来清理代码位,不再需要括号。
elm 是否支持此运算符或类似的东西?
我可以自己定义它,但我希望这是内置的东西。
工作原理如下:
import Html
import List exposing (map, foldr)
datas = [("a", 1), ("b", 2), ("c", 3)]
{--}
($) : (a -> b) -> (a -> b)
($) a b = a b
infixr 0 $
--}
main =
{-- replace all these parens
Html.text (toString (foldr (++) "" (map fst datas)))
--}
Html.text $ toString $ foldr (++) "" $ map fst datas
是的,我们使用 <|
而不是 $
。我们从 F# 中借用它以及翻转版本 |>
和 <<
用于组合 .
和翻转版本 >>
.
一旦引入这些,人们自然而然地被称为 'pipelining' 的风格所吸引,在这种风格中,您可以获取一些数据并使用 |>
运算符通过几个步骤对其进行转换。如今,与使用 <|
相比,这是 Elm 代码中更常见的代码模式。
例如:
update : (Float, Keys) -> Model -> Model
update (dt, keys) mario =
mario
|> gravity dt
|> jump keys
|> walk keys
|> physics dt