2013-02-17 2 views
2

Я попробовал пример типа define-record-type в схеме48, и он, похоже, не работает. Что не так?Хотите определить запись в Scheme48

(define-record-type circle 
(make-circle r) 
circle? 
(r get-radius)) 

дает

Error: undefined variable 
    circle 
    (package user) 

Я пробовал другие примеры, и я получить аналогичные результаты. Я даже попробовал пример прямо из руководства по эксплуатации схемы48.

Заранее спасибо.

ответ

1

В manual говорится, что record определяется следующим образом:

(define-record-type tag type-name 
    (constructor-name field-tag ...) 
    predicate-name 
    (field-tag accessor-name [modifier-name]) 
    ...) 

Таким образом, в вашем примере, кажется, что type-name отсутствует. Попробуйте это:

(define-record-type circle :circle 
    (make-circle r) 
    circle? 
    (r get-radius)) 

И не забудьте импортировать библиотеку первым:

,open define-record-types 
+0

Это производит ту же самую ошибку. –

+0

@FredFinkle Я обновил свой ответ, попробовал последнюю версию - используя только ': circle' как тег, так и тег-имя –

+0

Это также приводит к той же ошибке. –

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