" func2(func1 arg)","(func2.func1)arg"或" func2 $ func1 arg"?

时间:2015-08-20 07:12:35

标签: haskell

我想知道你会选择哪个选项?

putStrLn (show randomNum)
putStrLn $ show randomNum
(putStrLn . show) randomNum

所有选项在语法上都是正确的。

  • 括号确保首先执行showputStrLn只获得一个参数。

  • $运算符使用show函数和randomNum并在show上执行randomNum,因此putStrLn只获得一个参数。< / p>

  • .运算符使用putStrLn函数,show函数和randomNum并在show上执行randomNum putStrLn然后sync关于结果。

但是在这个例子中,更像是像哈克尔一样还是更有意义呢?

1 个答案:

答案 0 :(得分:10)

print randomNum

print = putStrLn . show以来,这是显而易见的。如果你真的想使用单独的函数,请编写然后应用。

putStrLn . show $ randomNum