Подтвердить что ты не робот

Как учиться Общие Lisp и Emacs Lisp?

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

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

Ответ 4

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

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

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

Ответ 6

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

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

Ответ 7

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

Чтобы процитировать emacswiki, это An implementation of the CommonLisp object orientation standard (CLOS) in EmacsLisp.

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

Ответ 8

Возможно, изучите оба параллельно.

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