Я пойду против общественного мнения и скажу, что Haskell НЕ является хорошим первым языком программирования для типичного начинающего программиста.Я не думаю, что он так же доступен для начинающего новичка, как императивные языки, такие как Ruby.
Причина этого в том, что люди не думают о мире функционально.Когда они видят машину, едущую по улице, они видят ту же машину с постоянно изменяющимся изменчивым состоянием.Они не видят серию слегка отличающихся неизменяемых автомобилей.
Если вы посмотрите другие вопросы SO , вы увидите, что Haskell почти никогда не упоминается как хороший выбор дляновичок.
Однако, если вы математик или уже достаточно разбираетесь в программировании, чтобы понять ценность функционального программирования, я думаю, что Haskell - отличный выбор.
Итак, подведем итог, я думаюHaskell идеально подходит для вас, но не подходит для типичного новичка.
РЕДАКТИРОВАТЬ: Спасибо за проницательные комментарии.Утверждение Оуэна о том, что люди думают многопарадигально, очень верно.Это укрепляет мою уверенность в том, что такой многопарадигмальный язык, как Ruby, будет легче подобрать, и у него есть дополнительное преимущество, заключающееся в том, что он знакомит ученика с императивным и функциональным мышлением.Хаскелл явно не мультипарадигма.
Чак упомянул изощренную систему типов Хаскелла, что является еще одним замечательным моментом.Хотя я лично предпочитаю статически типизированные языки, использование динамического языка позволяет новичку игнорировать эту часть головоломки, пока они не станут достаточно любопытными, чтобы выяснить, что происходит за кулисами.Система типов в Haskell, хотя и элегантна, стоит перед вами с первого дня.