Вопрос

Lisp или Haskell, мне нужно изучить функциональное программирование, но я слышал, что LISP очень старый, какой -нибудь совет между этими двумя языками?

Это было полезно?

Решение

Хаскелл, потому что, как только вы узнаете Хаскелла, вам это понравится. И тогда вы сможете изучать общий LISP. Однако, если ваш редактор - EMACS, то начните с LISP.

Другие советы

Просто чтобы повторить другие, я бы узнал как схему (более функциональный диалект LISP), так и Хаскелл. Схема / LISP имеют несколько полезных трюков, чтобы научить вас «код - это данные / данные - это код» и макросы. Схема поощряет хороший функциональный стиль, и я бы порекомендовал серию книг «Маленькая схема», чтобы вы начали с этого. SICP также фантастический текст http://mitpress.mit.edu/sicp/full-text/book/book.html и, возможно, одна из лучших книг, когда -либо написанных по программированию. Схема более доступна как первый функциональный язык.

После того, как вы получите схему, вы, вероятно, обнаружите, что расстроитесь из -за отсутствия библиотек, отсутствия параллелизма и небольшого, хотя и превосходного сообщества. Вот где я был, когда решил узнать Хаскелл. Haskell очень зрелый, очень полезный и очень функциональный, и это очень сложно, когда вы выходите из основания, и поэтому заземление на другом функциональном языке очень поможет. Вы не пожалеете об обучении (или оба).

Почему не оба? LISP очень легко выучить (я бы пошел на диалект схемы - см. http://racket-lang.org), так что я бы начал с этого. Если вам это нравится, придерживайтесь этого, но я бы также дал Haskell, хотя это (по моему опыту) значительно сложнее обернуть голову.

Самое замечательное в вычислении в наши дни вы можете попробовать все эти языки бесплатно, кроме своего времени. Когда я начал программирование, LISP был доступен только на мэйнфреймах, что немного подгоняло, пытаясь его выучить.

Если вы хотите изучить функциональное программирование, внедряя компилятор или интерпретатор языка, то LISP или ML должны быть лучшим первым выбором, так как их намного проще в реализации, чем ленивый язык. В противном случае вам лучше узнать оба.

Выбор на основе возраста глупый, Хаскелл был гораздо дольше, чем скажем, C#, и его история простирается намного дальше. В любом случае, я бы порекомендовал изучить оба в конечном итоге, для обучения функциональному программированию Хаскелл конкретно связан с чисто функциональным программированием (в ряде смысла значения). Схема является функциональным потомком LISP.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top