(load "interface pour transmission de message_table.scm") (creer-classe 'rectangulaire #f '(partie-reelle partie-imaginaire) `((partie-module . ,(lambda (self) (let ((r (slot-value self 'partie-reelle)) (i (slot-value self 'partie-imaginaire))) (sqrt (+ (* r r) (* i i)))))) (+c . ,(lambda (self c2) (creer-rectangulaire (+ (ask self 'partie-reelle) (ask c2 'partie-reelle)) (+ (ask self 'partie-imaginaire) (ask c2 'partie-imaginaire))))))) (define (creer-rectangulaire r i) (new 'rectangulaire `(partie-reelle . ,r) `(partie-imaginaire . ,i))) (define z1 (creer-rectangulaire 3 4)) (define z2 (creer-rectangulaire 5 9)) (ask z1 'partie-reelle) (ask z1 'partie-module) (ask z1 '+c z2) (slot-value z2 'partie-reelle) ;(slot-value z2 'partie-module) partie-module n'est pas une slot de rectangulaire