Цитата:
(format t "~{~C~}"(or tail '(#\0)))
|
FORMAT-инструкция ~{ - цикл по элементам списка, заданного очередным параметром. В нашем случае параметр после формата один - список цифр. Каждый элемент списка (у нас - очередная литера-цифра) выводится по шаблону, записанному между ~{ и ~}. В данном случае - ~C, т.е. вывод одной литеры "как есть".
Вот еще пример:
Код:
CL-USER> (format t "|~{<~C> - ~}|" '(#\a #\b #\c))
|<a> - [b] - <c> - |
NIL
Цитата:
Не посоветуете ли какое-нибудь пособие по ЛИСПу на русском языке
|
Я знаю всего две книжки по Лиспу на русском языке - "Мир Лиспа" (очень старая) и "Структура и интерпретация компьютерных программ" (начальный курс программирования с использованием языка Scheme). Если Вы собираетесь работать программистом, учить английский все равно придется.
Цитата:
как работает в Лиспе логический оператор OR
|
В ANSI Common Lisp: (OR подформа1 ... подформаn). Последовательно выполняются указанные подформы. Если какая-либо из подформ возвращает объект, отличный от NIL, вычисление всей формы прекращается, и этот объект возвращается как результат. Если все подформы возвращают NIL, результатом является NIL.
Пример:
(let ((n 3)) (or (zerop n) (/ 1 n))) => 1/3
(let ((n 0)) (or (zerop n) (/ 1 n))) => истина
(let ((n 0)) (or (/ 1 n) (zerop n))) => ошибка "деление на 0"