Описание тега land-of-lisp

Land of Lisp - образовательный комикс, который учит читателей программировать на Common Lisp.
4 ответа

Основной вопрос о списке ассоциаций в Лиспе

Я читаю "Землю Лиспа" (кстати, одну из лучших технических книг, которые я когда-либо читал), и мне попался список ассоциаций. (defparameter *edges* '((living-room (garden west door) (attic upstairs ladder)) (garden (living-room east door)) (attic (l…
11 ноя '10 в 13:02
2 ответа

Использование "пепла" в LISP для выполнения бинарного поиска?

Итак, я сейчас читаю Land of Lisp, и Lisp оказывается совершенно другим, чем другие языки программирования, которые я видел. В любом случае, книга содержит код, который мы должны ввести в CLISP REPL: (defparameter *small* 1) (defparameter *big* 100)…
26 дек '11 в 10:16
1 ответ

Земля Лиспа src webserver.lisp

В то время как я изучал в 12 и 13 главе "Страна лиспов" "сокет". Я использую lispbox, поэтому мне нужно установить сокет. Наконец, я нашел доступный usocket. это пример того, как использовать usocket для создания веб-сервера. (defun serve (request-h…
29 ноя '12 в 08:45
2 ответа

Вывод ошибки CLISP REPL: как найти номер строки в файле, где произошла ошибка?

Я работаю через Land of Lisp, использую CLisp, пишу код в Vim с помощью Slimv, затем alt-tabbing в другое окно терминала и загружаю файл в REPL с помощью (load 'file.lisp), затем запускаю программы на РЕПЛ. Когда я получаю сообщение об ошибке в REPL…
24 май '11 в 22:32
1 ответ

Памятка с примером закрытия из Land of Lisp

На странице 329 Земли Лиспа Конрад Барски объясняет технику запоминания с помощью следующего примера кода (let ((old-neighbors (symbol-function 'neighbors)) (previous (make-hash-table))) (defun neighbors (pos) (or (gethash pos previous) (setf (getha…
08 апр '18 в 09:59
1 ответ

Что такое синтаксическое выражение?

Я читал в книге "Земля Лисп", автор упоминает syntax expression, Означает ли это способность выражать синтаксис как форму данных? Это так же, как S-expression (символическое выражение)?
04 мар '12 в 13:46
2 ответа

Код запускается в REPL, но не сохраняется в файле

Я пытаюсь создать текстовую игру Clojure (по мотивам Land of Lisp). (def *nodes* {:living-room "you are in the living-room. a wizard is snoring loudly on the couch." :garden "you are in a beautiful garden. there is a well in front of you." :attic "y…
04 мар '11 в 22:53
3 ответа

Оценка макро аргументов в clojure

Я пытаюсь перевести следующий макрос из Лиспа в clojure: (defmacro tag (name atts &body body) `(progn (print-tag ',name (list ,@(mapcar (lambda (x) `(cons ',(car x) ,(cdr x))) (pairs atts))) nil) ,@body (print-tag ',name nil t))) Но я продолжаю …
06 авг '11 в 17:28
4 ответа

Переполнение стека от рекурсивного вызова функции в Лиспе

Я изучаю Лисп из книги Конрада Барского "Земля Лисп". Теперь я столкнулся с моим первым камнем преткновения, где автор говорит: Вызывать себя таким образом не только разрешено в Лиспе, но часто настоятельно рекомендуется после показа следующего прим…
1 ответ

Вопрос о lisp лямбда-функциях из примера в Лиспе

Я не совсем понимаю лямбда-функции. Вот пример функции из книги Land of Lisp: (defun edges->dot (edges) (mapc (lambda (node) (mapc (lambda (edge) (fresh-line) (princ (dot-name (car node))) (princ "->") (princ (dot-name (car edge))) (princ "[la…
15 сен '11 в 23:51
5 ответов

Твик-текст: вложенность Lisp превышает `max-lisp-eval-глубина

Программа должна переформатировать строку, как показано ниже. Пример: (game-print '(ЭТО ПРЕДЛОЖЕНИЕ。 ЧТО ОБ ЭТОМ? ВЕРОЯТНО.)) Это предложение. Как насчет этого? Наверное. Но что-то не так (вложенность Lisp превышает `max-lisp-eval-глубина), и я не з…
14 июн '12 в 02:54
2 ответа

Кадр списка, включающего ассоциированную функцию

Я посмотрел вокруг в сети и не могу найти ответ на свой запрос. Я был бы очень признателен, если бы кто-то смог дать хороший ответ без оценки рейтинга этого поста. В Лиспе car, cdr используются в режиме данных, как '(whatever here) что имеет смысл д…
31 май '14 в 05:32
2 ответа

LISP: обращение к списку в LISP с использованием RPLACA/RPLACD/NCONC

Поэтому я пытаюсь сделать так, чтобы функция брала список и переворачивала его, но я не уверена, как бы использовать RPLACA/RPLACD/NONC, По сути, делает то же самое, что и наоборот, но использует узлы минусов исходного списка и не выделяет никаких у…
17 фев '15 в 04:18
1 ответ

Извлечение узлов образуют точечный список (ребра) в CLISP

Я "ноль" или () в мире Лисп.Я хотел получить список всех узлов в списке краев и написал код для решения этой проблемы. Но я столкнулся с неожиданной проблемой. (Коды из "Лиспской земли" - глава 8) ;; Creating edge list (defun random-node () (1+ (ran…
26 янв '15 в 02:43
2 ответа

Путаница с лиспом "if" и команда "cons"

Я читаю Land of Lisp Конрада Барского, и я немного запутался в использовании команды if (если назвать несколько).. Итак, я понимаю, что запись if '() означает, что список пуст, а условие ложно, а если'(1) означает, что список не пуст, а условие исти…
22 май '14 в 06:39
3 ответа

Как работает лямбда-функция в lisp?

В книге Land of Lisp я прочитал, что лямбда-функция является единственной встроенной функцией. Однако я не совсем понимаю, как это возможно, потому что я думал, что вам, по крайней мере, понадобится одна команда для сложения, одна для сравнения чисе…
1 ответ

Функция make-city-edge в игре Wumpus вызывает переполнение кучи

Просматривая книгу о Лиспе, я смог добраться до игры Grand Theft Wumpus, в которой я определил make-city-edges функция. Однако, когда я пытаюсь запустить его, SBCL на некоторое время зависает, прежде чем выдает мне очень неприятную ошибку: Heap exha…
1 ответ

Разбиение функции на несколько строк

Вот некоторый исходный код для примера из удивительной книги "Земля Лисп": (defun random-node () (1+ (random *node-num*))) (defun edge-pair (a b) (unless (eql a b) (list (cons a b) (cons b a)))) (defun make-edge-list () (apply #'append (loop repeat …
18 ноя '10 в 01:36
2 ответа

Устранение моего явного состояния, проходящего через лайки, монады и прочее

Я работаю над книгой Land of Lisp на F# (да, странно, я знаю). Для своего первого примера текстового приключения они используют мутацию глобальной переменной, и я бы хотел ее избежать. Моя монад-фу слаба, поэтому сейчас я делаю ужасное состояние, ка…
4 ответа

Понимание режима данных в Лиспе, почему эти выражения не совпадают?

В настоящее время я читаю "Земля Лисп". В одном из последних примеров кода автор дал: > (eq 'fooo 'FoOo) T доказать, что символы не чувствительны к регистру. Через несколько страниц официально введен режим данных. Однако я не могу понять следующе…
01 дек '13 в 14:12