Должен ли я прочитать первое или второе издание "Введение в функциональное программирование" Bird & Wadler?
Я слышал, что лучше читать первый выпуск "Введение в функциональное программирование" Птицы и Вадлера, чем второе издание. В первом издании используется Miranda, а во втором издании используется Haskell.
Это общая рекомендация? Моя цель - серьезно заняться функциональным программированием. Тщательное знание концепций функционального программирования для меня важнее, чем знание синтаксиса языка, поэтому я отлично разбираюсь в Миранда, если первое издание как-то лучше.
Я знаю F # и Scala.
Ответы
Ответ 1
Я настоятельно рекомендую второе издание, которое представляет собой тщательно переработанную, расширенную и в основном улучшенную версию первого издания. Я прочитал оба издания. В первом выпуске приведен пример решения проблемы 8 ферзей с обратным следом, к сожалению, этот пример был отброшен во втором издании. Второе издание - моя любимая книга о Haskell.
Примеры из математики, включая доказательство по индукции. Материал о выводе программ из их спецификаций Птицей во втором издании является удивительным, мне нравится эта книга. Если вы можете обрабатывать примеры из математики, эта книга превосходна.
Я думаю, что эта книга также является отличным вступительным текстом в Haskell, однако я обнаружил, что как только я попытался написать программы Haskell, которые мне часто приходилось читать из других учебных пособий, и мне приходилось ссылаться на Real World Haskell.
Еще один отличный текст по математике и логике с примерами, использующими Haskell, который помогает понять математику, - это Haskell Road to Logic, Maths and Programming. Птичий текст намного глубже в программировании Haskell.
Ответ 2
Я не читал Птицу и Вадлера, но Миранда и Хаскелл похожи - чисто функциональные, нестрогие, статически типизированные и т.д. Если язык - это ваше единственное соображение при выборе издания, я бы выбрал Haskell, потому что он более популярен и бесплатно, и, следовательно, легче получить практический опыт.
Я не использовал Миранда, но я понимаю, что это главный предшественник Haskell и что Haskell не существовал бы, если бы его создатель не закрыл источник и не попытался сделать его коммерческим продуктом. Из-за этого он по-прежнему упоминается как MirandaTM.
Ответ 3
Я использовал Haskell, это чисто функциональный язык, и он довольно стандартный. Я не очень хорошо помню Миранду, но я думаю, что это не чисто функционально, как F # и Scala. Мой sugestion учится чистому пути, он, вероятно, самый сложный, но не требует никакого сочетания с функциональным программированием, таким образом вы никогда не узнаете его, как он лучший. И насколько я знаю, у Миранды очень мало усыновления, и на протяжении многих лет Haskell неуклонно рос.
Ответ 4
Да, вы должны прочитать первое или второе издание "Введение в функциональное программирование" Птицы и Вадлера.
(я имею в виду включительный или)