【发布时间】:2015-08-20 07:12:35
【问题描述】:
不知道你会选择哪个选项?
putStrLn (show randomNum)
putStrLn $ show randomNum
(putStrLn . show) randomNum
所有选项在语法上都是正确的。
括号确保
show首先被执行,putStrLn只得到一个参数。$运算符采用 show 函数和randomNum并在randomNum上执行show,因此putStrLn仅获得一个参数。.运算符采用putStrLn函数、show函数和randomNum并首先在randomNum上执行show,然后在结果上执行putStrLn。
但是在这个例子中,什么更类似于 haskell 或更有意义?
【问题讨论】:
-
我认为这与个人选择有关。我倾向于写
f $ g x。但有了更多功能,我还写了f . g . h $ x,将$向右移动。如果找到f . g“有意义”,我可以使用f . g $ x。我知道我的风格不是 100% 一致的。 -
绝对是一种风格选择。选择一个并始终如一地应用它。
-
这对于 StackOverflow 来说不是一个非常合适的问题——所有这些问题都同样“类似 Haskell”。没有正确答案。
标签: haskell