Чтобы действительно изучить и освоить мощь Haskell, вам нужно забыть все, что вы знали об императивном программировании (да, действительно, обо всем) и строить на совершенно другом фундаменте.
Как насчет:
main = do putStr "What is your name?" a <- readLn putStr "How old are you?" b <- readLn print (a,b)
Это совершенно необходимо ^^:
main = do x <- pop
pop
push x
То же самое ^^, и много кода на Haskell является обязательным, почему именно кто-то захочет забыть об этом и изучить его заново?
Также:
[j для i в диапазоне (2, 8) для j в диапазоне (i * 2, 50, i)]
это Python, а это Haskell:
[x+2*x+x/2 | x <- [1,2,3,4]]
Я думаю, что они очень похожи, почему я должен пытаться забыть о первом?
Возможно, вы хотели сказать, забудьте об изменчивости, забудьте об объектах и шаблонах GOF, которые могут быть правдой, но не совсем. Поскольку многие люди лучше понимают, почему изменчивость неверна, столкнувшись с первой тупиковой ситуацией, многие люди понимают, как работает класс типов, потому что они знают, что делает интерфейс (черта), многие знают об дженериках из шаблонов C++ и Java или C#, и это поможет им адаптироваться к программированию типов Haskell, которое не сильно отличается.
Я пытаюсь сказать здесь, что предыдущие знания не будут обременять новичка в Haskell, это еще один неверный факт, если кто-то с опытом работы с ML или Lisp попробует Haskell, он также довольно быстро адаптируется, Haskell отличается, но опять же Brain**** отличается, и это ничего не значит, каждый может этому научиться.
PS. Извините за форматирование.