Export to GitHub

def-symbol-readmacro - LoadPackage.wiki


БИБЛИОТЕКА В ПРОЦЕССЕ РЕОРГАНИЗАЦИИ, НЕ ПЫТАЙТЕСЬ ЗАГРУЖАТЬ

Установка и загрузка

  1. Создаете каталог C:\Lisp\.

Вся дальнейшая работа ведется в этом каталоге

  1. Клонируете репозиторий с помощью команд

c: cd \ cd Lisp hg clone https://code.google.com/p/def-symbol-readmacro/

Либо скачиваете архив (Source/Browse/Download zip) и распаковываете его в папку c:\lisp\def-symbol-readmacro

  1. Инсталлируете Quicklisp.

; скачиваете http://beta.quicklisp.org/quicklisp.lisp в c:/lisp/ (load "c:/lisp/quicklisp") (quicklisp-quickstart:install :path "C:/lisp/quicklisp/")

  1. Разворачиваете систему iterate-keywords

Скачиваете архив системы iterate-keywords и развертываете его в каталог C:\Lisp\quicklisp\local-projects\iterate-keywords\

  1. Загружаете файл C:\Lisp\def-symbol-readmacro\budden-load.lisp

(load "C:/Lisp/def-symbol-readmacro/budden-load.lisp")

Загрузка завершена.

При использовании библиотеки существует возможность именовать символы способами, отличными от стандартных. Так, можно задавать имена символов в camel case, т.е. с разным регистром разных частей символа: CamelCase, MicroEditor, deltaForce и т.д. Регистр подобных символов не меняется при переводе имени символа в строковый вид.

Если же регистр символов одинаков (символы написаны строчными или прописными буквами), то написание символа приводится к нижнему регистру. Т.е. если в REPL написать 'SYMBOL или 'symbol, будет выведено symbol, а если написать 'Symbol, то будет выведено Symbol.

Это возможно благодаря использованию таблицы чтения из пакета budden-tools.

Перед использование вышеописанной функциональности необходимо сделать вызов (budden-tools::in-readtable :buddens-readtable). Этот вызов осуществляет переключение текущей таблицы чтения на таблицу из библиотеки.

Следует иметь ввиду, что функция (load) осуществляет связывание текущей таблицы чтения во собственно загрузки, поэтому необходимо делать вызов (budden-tools::in-readtable :buddens-readtable) даже если в коде, который вы загружаете через (load) этот вызов присутствует.