Difference between print and putStrLn in Haskell

HaskellPrintingGhc

Haskell Problem Overview


I am confused. I tried to use print, but I know people apply putStrLn. What are the real differences between them?

print $ function 
putStrLn $ function

Haskell Solutions


Solution 1 - Haskell

The function putStrLn takes a String and displays it to the screen, followed by a newline character (put a String followed by a new Line).

Because it only works with Strings, a common idiom is to take any object, convert it to a String, and then apply putStrLn to display it. The generic way to convert an object to a String is with the show function, so your code would end up with a lot of

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

Once you notice that, it's not a very big stretch to define a function that converts to a String and displays the string in one step

print x = putStrLn (show x)

which is exactly what the print function is.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAmir NabaeiView Question on Stackoverflow
Solution 1 - HaskellChris TaylorView Answer on Stackoverflow