在Haskell中,您可以使用$
运算符来清理代码,从而无需使用parens.
榆树是否支持这种运算符,或类似的东西?
我可以自己定义,但我希望这是内置的东西.
以下是它的工作原理:
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
Apanatshka.. 20
是的,我们用<|
而不是$
.我们从F#借用了翻转版本|>
以及<<
合成.
和翻转版本>>
.
一旦这些被引入,人们自然会倾向于称为"流水线"的样式,在那里您可以使用|>
操作员获取一些数据并将其转换为几个步骤.这些天,这是榆树代码中比使用更常见的代码模式<|
.
例如:
update : (Float, Keys) -> Model -> Model update (dt, keys) mario = mario |> gravity dt |> jump keys |> walk keys |> physics dt
(摘自网站上的马里奥示例)
是的,我们用<|
而不是$
.我们从F#借用了翻转版本|>
以及<<
合成.
和翻转版本>>
.
一旦这些被引入,人们自然会倾向于称为"流水线"的样式,在那里您可以使用|>
操作员获取一些数据并将其转换为几个步骤.这些天,这是榆树代码中比使用更常见的代码模式<|
.
例如:
update : (Float, Keys) -> Model -> Model update (dt, keys) mario = mario |> gravity dt |> jump keys |> walk keys |> physics dt
(摘自网站上的马里奥示例)