Print和putStrLn在Haskell中的区别

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

  print $ function putStrLn $ function 

函数putStrLn接受一个String并将其显示在屏幕上,后面跟着一个换行符( Str 放到一个新的L中 )。

因为它只能和String工作,所以常见的习惯就是取任何对象,将其转换为String ,然后应用putStrLn来显示它。 将对象转换为String的通用方法是使用show函数,因此您的代码最终会有很多

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

一旦你注意到了,定义一个函数转换成一个String并且在一个步骤中显示string并不是一个很大的延伸

 print x = putStrLn (show x) 

这正是printfunction所在。