2014-01-10 5 views
0
#lang swindle 
(require swindle/misc 
     swindle/setf 
    ) 


(defclass* jacket() 
    (size :initvalue 40 :accessor sj) 
    :printer #t) 

(defclass* trousers() 
    (size :initvalue 44 :accessor st) 
    :printer #t) 

(defclass* suit (jacket trousers) 

Если я скомпилирую этот код и напишу (сделаю костюм) | (сделать куртку) | сделайте (брюки) в интерпретаторе, всегда возвращается #<procedure:swindleobj>, но он должен быть таким, как #<jacket size=40>.make-operator возвращает swindleobject

Я пропустил какие-либо требования или что я делаю неправильно?

ответ

0

Ваш код работает для меня:

#lang swindle 
(defclass* jacket() (size :initvalue 40 :accessor sj) :printer #t) 
(define x (make jacket)) 

(displayln x) 
=> #<jacket: size=40> 

(displayln (slot-ref x 'size)) 
=> 40 

(displayln (sj x)) 
=> 40 
+0

ах, что дисплей делает трюк. Большое вам спасибо, я просто новичок в использовании мошенничества :) – user2658567

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