Насколько жизнеспособным является emacs LISP помимо редактирования emacs?
Я нахожусь на втором курсе моей основной специальности, и у меня были только курсы в C (первый курс, затем курс полиморфных структур данных), С++ (фокус OOP), сборка MIPS и курс компилятора. Я работал в WinForms и С# в течение лета. Я работал через Little Schemer, и мне действительно интересно узнать что-то вроде LISP.
Emacs - мой редактор выбора - Emacs LISP должен стать отличным местом для начала.
Помимо настройки emacs, где еще я могу использовать emacs LISP? Создание исполняемого файла из кода elisp кажется почти невозможным в соответствии с Текстом ссылки. Какие еще существуют ограничения?
Должен ли я узнать Scheme или Common LISP вместо этого?
Ответы
Ответ 1
Emacs - текстовый редактор. Emacs Lisp - в основе - текстовый язык редактирования.
Pinnacles of elisp сегодня - IMO - это ERC, клиент IRC Emacs и орг-режим, очень хорошая система организации. Существует также почтовый клиент для emacs.
Итак, для создания плагинов редактирования текста я не думаю, что вы можете бить elisp/emacs.
Для реальной разработки автономных приложений Common Lisp, вероятно, лучший выбор. Я одобряю реализацию CLISP, но SBCL также очень популярен. Существует множество реализаций Lisp. Кто-то когда-то шутил недавно, что есть больше компиляторов Lisp, чем есть Lisp -использование компаний.: -o
Ответ 2
Как говорили другие, Emacs lisp содержит много примитивов для создания текстового редактора.
Тем не менее, все еще lisp, и удобство использования lisp (Emacs, common или schem) примерно одинаково во всех.
Вы можете использовать общий пакет lisp, чтобы получить доступ к большинству общих макросов lisp, если вы хотите их использовать.
Вы можете использовать Emacs lisp для написания сценариев оболочки (см. этот вопрос), если это интересно. Более низкая обработка процесса полезна, если вы хотите подключиться к другим работающим процессам (см. comint).
Найдите проект, над которым хотите работать, а затем отпустите свое решение. Если Emacs lisp подходит хорошо, используйте его, если общий lisp работает хорошо, используйте это.
Ответ 3
Это, конечно, субъективно, но я думаю, что изучение Common Lisp или (standard) Scheme обычно более полезно, просто для простого факта, что вы не будете ограничиваться одним компилятором. Трудно предвидеть все, что вы можете сделать с вашим кодом, поэтому зачем блокировать себя до одной реализации?
Ответ 4
Похоже, вы ищете, чтобы узнать lisp. Для этой схемы часто рекомендуется, и вы говорите, что читаете The Little Schemer.
PLT Racket, которая ранее была PLT-схемой, является очень хорошей схемой разработки и обучения. Первоначальная первичная направленность PLT Scheme была дидактичной, переименование с Scheme на Racket - это плохой каламбур, но предназначено для обозначения того, что система также зрелая и достаточная для эффективного использования "реального мира".
Ответ 5
Emacs Lisp - это скорее язык сценариев, специфичный для среды Emacs, полезный для изучения, если вы хотите соперничать с Stallman в вашем понимании Emacs или хотите написать расширения.
Общий Lisp является стандартом де-факто для Lisp. Схема более педагогическая, в первую очередь благодаря ее ассоциации со знаменитым классом MIT и книгой (SICP), хотя она сама по себе мощна.
Однако они разные. По каким-то причинам Scheme является одним из самых маленьких компьютерных языков (в терминах стандартной библиотеки). Определение языка составляет около шести страниц. Общий Lisp - один из самых больших компьютерных языков.
Есть также более интересные примеры. Несколько лет назад я играл с диалектом Lisp, который поддерживал встроенный код C и Python, а также импортировал и использовал объекты C и Python и вызывал от них функции напрямую. Однако, похоже, он исчез в неясности, так как я не могу найти ссылку на него в Google.
Ответ 6
Я бы рекомендовал схему курицы (http://www.call-cc.org), если вы заинтересованы в изучении некоторых Lisp. Он получил очень хорошую документацию, активно развивается, работает на разных платформах и имеет отличную систему расширений под названием "яйца", которые содержат множество библиотек для актаульного кодирования, которые напрямую не указаны.
С другой стороны, emacs - отличная среда разработки для обучения emacs lisp, что очень полезно для сценариев и (очевидно) настройки emacs. Имея документацию по функциям и переменным, только C-h f, C-h v и C-h A делают разработку намного проще; это когда вы узнаете некоторые из более неясных соглашений об именах, которые elisp создал за эти годы.