Лисп/Рабочая среда

Материал из Викиучебника — открытых книг для открытого мира
Перейти к: навигация, поиск

Диалекты[править]

Обычно различают Лисп-изначальный замысел языка, и выросшие по нему диалекты, среди которых распространены три:

Общий Лисп (Common Lisp),
переживший бюрократию американской военной стандартизации, и
Ским (Scheme, /skiːm/),
считающийся оптимально элегантным «учебным» вариантом языка. В журнале «Потенциал» даже есть статья «Введение в язык Scheme для школьников».
Clojure

Система разработки[править]

Простой и крайне наглядный синтаксис Лиспа скоро отучает от ксеноглоссии всевозможных служебных и препинательных знаков алголоподобных языков. Для лиспника есть только список (то есть дерево, ибо список тот нелинейный и строго однонаправленный) и символы, которые могут быть чем угодно; однако при верном стиле программирования значение большинства из них становится локально понятным.[1]

При всей этой простоте, полезно бы иметь подходящую среду разработки для Лиспа, которая будет:

  • с каждым переводом строки — делать традиционно верный отступ;
  • служебные операторы цветом и яркостью отличать от встроенных операторов, от вводимых программистом операторов, от синтаксического сахара;
  • по простой команде с клавиатуры закрывать скобки;
  • подсказывать синтаксис для вводимой языковой конструкции — например, число и порядок передаваемых аргументов для определённого пользователем макроса.

Традиционным для Лиспа считается редактор Emacs, который для среднего пользователя персонального компьютера будет раздражающе чуждым, подобно Vim’у. Но емакс хотя бы не заставляет всё время переключать режимы.

Набор Lisp in a Box используется в книге «Practical Common Lisp» для примеров работы с интегрированной средой разработки. В качестве редактора там — Emacs…

Популярная среда разработки Eclipse поддерживает Лисп через модуль под названием Cusp. Видимо, такое сочетание — самый простой и удобный выбор из свободного ПО.

[…]


  1. При этом неалфавитные знаки обычно используются для [необязательного] пояснения того или иного символа: глобальные переменные часто заключаются в *звёздочки* (да, юникод во многих реализациях Лиспа тоже возможен); `машинописные 'кавычки ,запятые &некоторые иные знаки порою используются как синтаксический сахар, но не навязываются как существенная часть основного синтаксиса. Читайте также Лисп/Синтаксис.