在Haskell中,您可以使用$
运算符来清理代码,从而无需使用parens。
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
答案 0 :(得分:19)
是的,我们使用<|
代替$
。我们从F#借用了翻转版本|>
和<<
用于合成.
和翻转版本>>
。
一旦这些被引入,人们自然会倾向于使用被称为“流水线”的样式,您可以使用|>
运算符获取一些数据并使用几个步骤对其进行转换。现在,这是榆树代码中比使用<|
更常见的代码模式。
例如:
update : (Float, Keys) -> Model -> Model
update (dt, keys) mario =
mario
|> gravity dt
|> jump keys
|> walk keys
|> physics dt