Списки

В данной статье рассказывается про списки. Списки это базовая компонента языка lisp. Именно для обработки списков был разработан lisp. Другие структуры данных появились позже. Однако, так ли просты списки как это кажется на первый взгляд? Об этом вы узнаете в этой статье. Читать далее

Обработка коллекций

Обработка коллекций это отдельная тема для статьи. Во-первых я сам не сразу понял фишку, во-вторых кроме этой фишки там полная путаница в обработке этих коллекций. Всё дело в том, что lisp немного функциональный, а немного нет. Сейчас разложить всё по полочкам, чтобы сразу всё стало ясным и больше к этому не возвращаться. Читать далее

Коллекции

Как и во многих языках в lisp есть только скалярные типы данных, но и коллекции. В этой статье рассмотрим строки, вектора, хэштаблицы и списки. Так же здесь будут описаны некоторые операции для обработки коллекций. Всем заинтересованным добро пожаловать под кат. Читать далее

Макросы

Написание функций это один из способов расширения возможностей языка. Однако, это не единственная возможность. Язык lisp представляет ещё одну возможность под названием макросы. Это не макросы языка си, это более мощная вещь. Сейчас я о ней расскажу. Читать далее

Переменные и области видимости

Сегодня небольшой обзор переменных, областей видимости и типов данных. Не смотря на то, что lisp это динамически-типизированный язык и, по сути все переменные это ссылки на значения, у значений есть тип. А значит стоит об этом знать. Теперь обо всё по порядку. Читать далее

Функции

Следующий цикл статей будет о возможностях Common Lsip. Я не планирую делать здесь всёохватывающее руководство. Скорее просто напомнить и сделать некоторые путевые заметки для того, чтобы было куда возвращаться, чтобы посмотреть если что-то забыл. Для тех же, кто хочет освоить lisp с нуля рекомендую книгу Peter Seibel — Practical Common Lisp (PCL). Читать далее

Чтение-вычисление-вывод

Сегодня расскажу про такую удобную штуку как REPL  — цикл чтение-вычисление-вывод. Этот режим полезен для разработки кода и его отладки на-лету. Т.е. пишете код и тут же его запускаете. Этот режим может быть знаком вам по математическим пакетам или js консоли в браузере или python интерпретатора. Однако, появился такой режим в лиспе. Читать далее

Настройка emacs. Часть 2

Продолжим настраивать emacs, здесь не будет много слов. Сразу с места в карьер. Файл настроек emacs это скрипт на emacs-lisp. Для того, что закомментировать строчку используется точка с запятой. Как сделать блочные комментарии я не знаю. Вроде этой возможности нет, если я это упустил, то напиу в комментариях.
Далее пойдут выдержки кода и пояснение к ним. Читать далее

Настройка emacs. Часть 1

В этой статье я опишу то, как я настраивал свой emacs. Вообще, в интернете очень много статей о том как настроить emacs. Моя статья не претендует… ни на что, даже на оригинальность. Просто расскажу как это делал я. Точнее как бы сделал я, поскольку сейчас у меня знаний больше, чем раньше, а поэтому некоторые грабли можно обойти не наступая.
Первым этапом стоит скачать emacs с официального сайта GNU проектов. Сайты и ссылки не указываю на случай если что-то изменится. Думаю найти данный сайт в поисковике не составит труда. Да, кстати, это годится для linux, для windows думаю проще будет скачать и установить нажимая далее-далее-готово. После того как скачали и распаковали в нужную директорию заходим в неё и читаем INSTAL.md. Обычно он содержит всю информацию о том как установить данное ПО.
В моём случае нужно сначала сконфигурировать установщик, затем собрать и установить: Читать далее

Настройка окружения

Для того, чтобы начать программировать на лиспе лучше всего настроить среду. Можно конечно этого не делать и при каждой компиляции страдать. Думаю смысла в этом не так много. Поэтому приступим к настройке. Сначала установим сам компилятор-интерпретатор sbcl. Поскольку у меня linux, то расскажу как делать это на нём. Для поклонников mac os или windows действия не должны слишком отличаться. Если у вас debian-подобная система (как у меня), то всё довольно просто пишете:

sudo apt-get install sbcl

sbclbutton

Аналогично нужно установить emacs, slime и swank.

sudo apt-get install emacs slime cl-swank

Читать далее