Haskell中print和putStrLn之间的区别

时间:2013-10-10 06:32:15

标签: haskell printing ghc

我很困惑。我尝试使用print,但我知道有人申请putStrLn。他们之间有什么真正的区别?

print $ function 
putStrLn $ function

1 个答案:

答案 0 :(得分:75)

函数putStrLn需要String并将其显示在屏幕上,然后是换行符( put a Str ing后跟一个新的 L i n e)。

因为它仅适用于String,所以常见的习惯用法是获取任何对象,将其转换为String,然后应用putStrLn来显示它。将对象转换为String的一般方法是使用show函数,因此您的代码最终会有很多

putStrLn (show 1)
putStrLn (show [1, 2, 3])
putStrLn (show (Just 42))

一旦你注意到,定义一个转换为String的函数并一步显示字符串就不是一个很大的延伸

print x = putStrLn (show x)

这正是print函数的作用。