Я только начинаю взглянуть на Haskell (мой предыдущий опыт FP находится в Scheme), и я столкнулся с этим кодом:
do { putStrLn "ABCDE" ; putStrLn "12345" }
Для меня это процедурное программирование, если что-либо - особенно из-за последовательной природы побочных эффектов.
Кто-нибудь, пожалуйста, объясните, как этот код является "функциональным" в любом отношении?