2012-03-17 2 views
1

Пример кода на стр. 144 из Touretzky's Lisp book вызывает ошибку в моей среде. Что-то не так с тем, как я бегу?Пример кода в книге Туретского вызывает ошибку при передаче *

(defun price-change (old new) 
    (let* ((diff (- new old)) 
    (proportion (/ diff old)) 
    (percentage (* proportion 100.0))) 
    (list ’widgets ’changed ’by percentage 
     ’percent)) 
) 

Произошла ошибка. Я не понимаю, почему «виджеты» строки оценивается ...

Break 5 [7]> (price-change 1.25 1.35) 

*** - LET*: variable ’WIDGETS has no value 
The following restarts are available: 
USE-VALUE  :R1  Input a value to be used instead of ’WIDGETS. 
STORE-VALUE :R2  Input a new value for ’WIDGETS. 
ABORT   :R3  Abort debug loop 
ABORT   :R4  Abort debug loop 
ABORT   :R5  Abort debug loop 
ABORT   :R6  Abort debug loop 
ABORT   :R7  Abort debug loop 
ABORT   :R8  Abort main loop 

среды: Ubuntu 11.10, ГНУ CLISP 2,49

+0

Как вы можете получить этот персонаж? Что вы используете для редактирования? –

ответ

3

Вы должны использовать котировку персонажу апострофа: '. Ты не. Вы использовали правильный кавычек.

+0

Спасибо. Код, который я привел, - это то, что я только что скопировал и вставил из оригинального файла pdf. – IsaacS

+1

@IsaacS: да, это может быть сделано процессом настройки типа. Будьте внимательны при копировании кода из книги. Обратите внимание, что части кода доступны здесь: http://www.cs.cmu.edu/~dst/Lisp/ –

Смежные вопросы