68

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

print $ function 
putStrLn $ function
4

1 回答 1

106

该函数putStrLn接受 aString并将其显示到屏幕上,后跟一个换行符(放置一个字符串,后跟一个新的L i n e)。

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

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

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

print x = putStrLn (show x)

这正是print功能。

于 2013-10-10T07:48:09.910 回答