with some corrections from: http://bc.tech.coop/cltl2-ansi.htm
http://filonenko-mikhail.github.com/cltl2-doc/en/clm.html
http://github.com/filonenko-mikhail/cltl2-doc/enpdf/cltl2.pdf
If you find errors send me email to filonenko.mikhail<at>gmail.com, or post information here: https://github.com/filonenko-mikhail/cltl2-doc/issues
Also you can find me on
Tarball: https://github.com/filonenko-mikhail/cltl2-doc/tarball/master
git clone --depth 1 https://github.com/filonenko-mikhail/cltl2-doc cd cltl2-doc-ru
pdf (pdflatex) | html (tex4ht) | |
---|---|---|
English | ./makepdf.sh | ./makehtml.sh |
xpdf rupdf/cltl2.pdf | firefox en/index.html | |
Russian | ./rumakepdf.sh | ./rumakehtml.sh |
xpdf rupdf/cltl2.pdf | firefox ru/index.html |
http://filonenko-mikhail.github.com/cltl2-doc/ru/clm.html
http://github.com/filonenko-mikhail/cltl2-doc/rupdf/cltl2.pdf
Если вы нашли ошибку или желаете улучшить перевод, то пришлите мне письмо на filonenko.mikhail<at>gmail.com, или оставьте сообщение здесь: https://github.com/filonenko-mikhail/cltl2-doc/issues
Также меня можно найти здесь:
Участие приветствуется любое. Для этого можно склонировать репозитарий и править *.tex исходники.
Оригинал на английском языке: http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/lang/lisp/doc/cltl/cltl_src.tgz
Обновленный Даниелом Херрингом LaTeX код: http://git.androdna.com/?p=lisp/cltl2
Сжатый архив: https://github.com/filonenko-mikhail/cltl2-doc/tarball/master
Репозитарий: https://github.com/filonenko-mikhail/cltl2-doc
git clone --depth 1 https://github.com/filonenko-mikhail/cltl2-doc-ru cd cltl2-doc-ru
./makeall.sh | pdf (pdflatex) | html (tex4ht) |
---|---|---|
Русский | ./rumakepdf.sh | ./rumakehtml.sh |
xpdf rupdf/cltl2.pdf | firefox ru/index.html | |
Английский | ./makepdf.sh | ./makehtml.sh |
xpdf rupdf/cltl2.pdf | firefox en/index.html |
Имена аргументов функций переводить не нужно.
Абзацы о несовместимости Common Lisp’а с другими диалектами переводить не нужно и желательно их удалять из оригинала. Они представлены так:
\begin{incompatibility} ... \end{incompatibility}
Я думаю, что сейчас кроме историков больше никому не интересно знать о том, чем Common Lisp отличается от своих предшественников.
Устаревшие абзацы нужно переводить частично. Чаще всего после устаревшего абзаца идет информация о его обновлении, или же идет полностью новый абзац.
Устаревший абзац
\begin{obsolete} ... \end{obsolete}
Обновление для устаревшего абзаца
\begin{newer} ... \end{newer}
Имена, фамилии переводить не обязательно.
Названия языков переводить не нужно. Можно просто их склонять с помощью апострофа в конце и русского окончания. Например: “Пишу программу на Common Lisp’е”.
Пояснения о функционировании реализации переводить необязательно. Эти абазацы выделяются так:
\begin{implementation} ... \end{implementation}
Главу 24 Errors переводить не нужно. Она полностью устарела и заменена главой Conditions.
Абзацы с отсылами к предыдущему изданию переводить не нужно. Такие абзацы выделены так:
\begin{new}%CORR \emph{Notice of correction.} ... \end{new}
Все остальные абзацы.
Английский | Русский | Комментарий |
---|---|---|
character | строковый символ (иногда просто символ) | Тип данных, представляющий отображение символа строки. Переводится со словом строковый, чтобы не было путаницы с фирменными лисповыми символами. |
integer | целое число, целочисленный | Тип данных, представляющий целое число. |
ratios | дробный | Тип данных, представляющий дробное число. |
rational | рациональные числа | |
real | действительные числа | |
floating-point numbers | числа с плавающей точкой | “с запятой” это более по русски, но технически будет сбивать с толку |
single | одинарные | |
short | короткие | |
long | длинные | |
double | двойные | |
“true list” | “Ъ список” | Список с последним элементом равным nil (не dotted) |
dotted list | список с точкой | Список с последним элементом не nil. |
keywords | ключевые символы | Символы, которые вычисляются сами в себя. |
keyword arguments (parameters) | именованные аргументы (параметры) | Аргументы, которые могут быть переданы с указанием имени в любой позиции при вызове функции. |
self-evaluated | самовычисляемый | |
macrocall | макровызов | Форма, вызывающая макрос. |
pathname | имя файла, объект имени файла | Объект, который содержит в себе структуру описывающую имя файла в переносимом формате. |
flow of control, control flow | порядок выполнения | |
non-local exit | нелокальный выход | Это ситуация, “прерывания” выполнения функции. |
are eq | равны eq | Равенство проверяется с помощью функции eq |
are eql | равны eql | Равенство проверяется с помощью функции eql |
are equal | равны equal | Равенство проверяется с помощью функции equal |
are equalp | равны equalp | Равенство проверяется с помощью функции equalp |
dispatching | диспетчеризация | |
evaluator | вычислитель | Программа, которая вычисляет формы. По сути интерпретатор. |
reader | считываеть | Программа, которая считывает формы. |
printer | писатель | Программа, которая выводит объекты Common Lisp’а на некоторое устройство. |
print name | имя символа (или выводимое имя) | Имя символа, которое выводится писателем. |
printed representation | текстовое (строковое) представление | Каждый Common Lisp’овый объект может быть выведен в строку, но не каждый может быть получен из строки обратно |
interned | пакетный (интернированный) | Символ, у которого есть домашний пакет. Либо символ, который доступен из данного пакета. |
uninterned | беспакетный (дезинтернированный) | Символ, у которого нет домашнего пакета. Либо символ удаляемый из данного пакета. |
intern | пакетировать (задать пакет) | Присваивание домашнего пакета символу. |
unintern | депакетировать (лишить пакета) | Лишить символ домашнего пакета. |
external symbol | внешний символ (экспортированный символ) | Символ, который “официально” доступен для пользователей пакета. |
internal symbol | внутренний символ (неэкспортированный символ) | Символ, который служит только для внутренних нужд. |
shadow | скрывать | Преимущество одного символа над другим, если у них одинаковые имена |
hash table | хеш-таблица | Структура для хранения объектов ключ=>значение. |
null environment | нулевое окружение | |
the top-level-loop | цикл взаимодействия с пользователем | |
synonym stream | поток-синоним | |
bit sink | кусочек клоаки | |
end-of-file | конец файла | |
error signal | сигнал об ошибке | |
to signal an error | сигнализировать ошибку | Перевод дословный и не совсем корректный, правильнее было бы сигнализировать об ошибке, но нынешний перевод более близок к техническому процессу. |
to signal a correctable error | сигнализировать исправимую ошибку | Это значит, что при возникновении ошибки можно исправить некоторые переменные и перезапустить выполнение, для получения корректного результата |
package cell | ячейка пакета | Это часть символа, для хранения ссылки на родительский пакет |
nickname | псевдоним | Пакет имеет основное имя и один или несколько псевдонимов |
keyword package | пакет ключевых симолов | В данном пакете хряняться ключевые символы |
are presented in package | быть родственным пакету | Хитрое свойство символа |
are available in package | быть доступным из пакета | Второе хитрое свойство, пересекающееся с предыдущим |
generalized variable | обобщенная переменная | А точнее, это форма, в которую можно сохранять лисп объект с помощью setf |
a correctable error is signaled | сигнализируется исправимая ошибка | Common Lisp’овая система условий и рестартов |
place | место, форма обощенной переменной | |
datum | значение | Значение, которое используется в ассоциативном списке (a-list) |
literal atom | литеральный атом | Грубо говоря константный объект, записанный как есть в исходном коде |
semi-standard | слегка стандартизирован | Некоторые строковые символы бывают такими |
expander function | функция типа | Функция, которая определяется с помощью deftype. |
stepping | пошаговое изменение | Изменение переменной в цикле |
CLOS, MOP
Английский | Русский | Комментарий |
---|---|---|
class metaobject | классовый метаобъект | Метаобъект определяющий поведение класса |
slot definition metaobject | слотовый метаобъект | Метаобъект содержащий информацию о слоте |
generic function metaobject | функциональный метаобъект | Метаобъект содержащий информацию о обобщённой функции и связанными с ней методами |
method metaobject | методовый метобъект | Метаобъект содержащий информацию о конкретном методе |
specializer metaobject | специализаторский метаобъект | Метаобъект содержащий информацию о специализаторах метода |
method combination metaobject | метаобъект комбинаций | Метаобъект содержащий информацию о кобминациях методов для обобщённой функции |
В процессе перевода LaTeX код преобразовывается и упрощается. Это сделано по нескольким причинам. Во-первых книга была сверстана давно в 1990 году и некоторые вещи сегодня просто отказались компилироваться. Во-вторых простой tex код гораздо лучше компилируется tex4ht и результат получается красивее.
Список преобразований:
Некоторые преобразования для более качественного вывода tex4ht:
Было | Стало | Значение |
---|---|---|
{\it …} | \emph{…} | Выделение (обычно курсивом) |
{\bf …} | \textbf{…} | Жирный |
{\tt …} | \texttt{…} | Моноширинный |
\(…\) | Скобки для математических формул | |
\hbox{…} | … |
Простые математические формулы tex4ht может компилировать в текст без генерации картинки. Это очень удобно, так как online книга получается достаточно легковесной.
Основные команды для книги определены в файле commands_html.tex.
Данный файл содержит конфигурацию для генератора html tex4ht.
Данный файл содержит стили для книги в html формате.