我在Haskell中遇到这个快速测试时遇到的快速问题:
module Main where
main :: IO()
main = putStrLn (show (inc 3))
inc :: (Num a) => a -> a
inc x = x+1
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来输出inc函数的值?如果不使用嵌套的parens来强制执行评估顺序,我无法获得输出.使用较少的parens我收到类型错误.只是想必须有一个更好的方法.
谢谢,如果你能清醒我:)
sep*_*p2k 12
首先:括号不强制执行评估顺序.
为了摆脱括号,您可以使用$具有非常低优先级的括号,从而允许您删除最后一个参数的括号.
对于这种特殊情况,还有print一个被定义为的功能putStrLn . show,所以你可以做print (inc 3)或print $ inc 3.