Как изучать Common Lisp и Emacs Lisp? - PullRequest
31 голосов
/ 01 октября 2010

Последние несколько месяцев я широко использовал Emacs в качестве основной среды разработки, и теперь я подошел к тому моменту, когда я хотел бы изучить его собственный Emacs Lisp, чтобы написать свой собственный небольшой материал для Emacs и расширить это для моих личных потребностей.

Сказав, что я также хотел некоторое время выучить Common Lisp, поиграть и изучить новый язык. У меня вопрос, с чего мне начать? Дадут ли мне Emacs Lisp необходимые знания, чтобы потом было легче подобрать Common Lisp или наоборот? Я в основном заинтересован в эффективности каждого пути, чтобы минимизировать кривую обучения, когда я наконец решаю перейти с одного диалекта на другой.

Ответы [ 8 ]

13 голосов
/ 01 октября 2010

Начните с Emacs Lisp (учитывая, что вы, похоже, уже начали настраивать свои Emacs) - кажется, это будет более полезным для вас.

Имейте в виду, что между ними есть небольшая разницаEmacs Lisp (есть много вещей для управления буфером, особенно в коде, который вы, вероятно, увидите в дикой природе) и Common Lisp (более похожий на язык программирования общего назначения), так что какой бы маршрут вы ни выбрали, ожидайте некоторого количестваиз «потерь»

12 голосов
/ 01 октября 2010

Я предполагаю, что вы искали SO до публикации и увидели вопросы "Как лучше всего изучить LISP?" и, возможно, "Советы по обучению Elisp" . Это две хорошие отправные точки для того, чтобы выучить любой из них.

Что касается , который нужно выучить первым, все зависит от того, что вы хотите сделать. Если у вас есть идея для проекта, который вас интересует, воспользуйтесь соответствующей подсказкой, чтобы решить эту проблему. Например, если вы хотите добавить / изменить некоторые функции в вашей среде разработки, используйте emacs lisp. В противном случае (если это не связано с редактором), используйте общий lisp.

Для меня это все о том, чтобы найти проект, который вас интересует, и использовать его для определения того, какой язык использовать.

Каждый из них достаточно близок, чтобы познакомиться с одним из них, используя другого прямо. Emacs lisp имеет множество специфических для домена функций (буферы, регионы, текстовые свойства, файлы, подпроцессы и т. Д.), А обычный lisp имеет широкий спектр библиотек для использования.

8 голосов
/ 21 октября 2010

Это может быть полезно: сравнение Common Lisp, Scheme, Clojure и Emacs Lisp .

5 голосов
/ 02 октября 2010

Я бы порекомендовал вам начать с Common Lisp, поскольку он гораздо более универсален, чем Emacs Lisp. Когда вы познакомитесь с Common Lisp, у вас будет очень мало проблем с подключением Emacs Lisp (это гораздо более простой диалект Lisp).

Вы, возможно, почему я предлагаю начать с "более сложного" языка двух, и вы были бы правы, чтобы задать такой вопрос. Ответ довольно прост - большая часть вещей в Emacs Lisp довольно тесно связана с Emacs, и вы можете пропустить часть общей картины, если начнете с этого.

Я лично начал свое путешествие к Лиспу с превосходной книги "Практический общий Лисп", которую уже рекомендовали другие. Это помогло мне понять концепцию и идеи LISP, и как только я понял Common Lisp, мне было довольно легко начать писать код Emacs Lisp прямо сейчас. Я не уверен, что путешествие будет противоположным, но все субъективно и зависит от личных предпочтений.

3 голосов
/ 21 августа 2011

Играй с Emacs Lisp и тренируйся с ним. Вы сразу сможете делать то, что можете видеть и относиться к нему. В то же время, возможно, прочитайте книгу о Common Lisp. И руководство Elisp.

Чтение не повредит и может дать вам дополнительную информацию и обзор. Но это зависит от того, как вам нравится учиться и т. Д. Чтение дает вам более широкую картину, чем то, что вы могли бы получить, начав практиковать - дает вам знать, куда вы могли бы пойти, что вы могли бы сделать, даже если вам это никогда не нужно или не нужно. *

3 голосов
/ 01 октября 2010
2 голосов
/ 01 октября 2010

Я рекомендую вам начать с EmacsLisp, так как он будет более полезным, как уже было сказано.
И как только вы хорошо разберетесь в особенностях языка, вы можете начать использовать eieio.

Цитируя emacswiki , это An implementation of the CommonLisp object orientation standard (CLOS) in EmacsLisp.

Лучшее из двух миров!

1 голос
/ 21 октября 2010

Наверное, выучите оба параллельно.

При изучении Common Lisp я использовал упражнения из Структуры и интерпретации компьютерных программ, которая находится в Схеме. Это означало, что на ранних этапах я столкнулся с различиями между Scheme и Common Lisp. Точно так же изучение emacs-lisp вместе с CL вполне выполнимо и может даже помочь вам понять область видимости, так как она отличается для каждого.

...