Skip to content
Extraits de code Groupes Projets
Valider 5d6efe83 rédigé par Nicolas Verbois's avatar Nicolas Verbois
Parcourir les fichiers

Delete step_3a.rkt

Was fused with step_2
parent 2b2be180
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
(define (point x y)
(define (getx) x )
(define (gety) y )
(define (gettype) 'point )
(define (getinfo)(list (self 'type) (self 'getx) (self 'gety)))
(define (setx value)(set! x value))
(define (sety value)(set! y value))
(define (add p)
(point (+ (getx) (p 'getx)) (+ (gety) (p 'gety))))
(define (self m)
(cond ((eq? m 'getx) (getx))
((eq? m 'gety) (gety))
((eq? m 'type) (gettype))
((eq? m 'info) (getinfo))
((eq? m 'setx!) setx)
((eq? m 'sety!) sety)
((eq? m 'add) add)
(else (error "Message not understood"))))
self)
(define (send p m . args)
(if (procedure? p)
(cond
((null? args) (p m))
(else ((p m) (car args)))
)
(display "Inappropriate receiver object") )
)
( define p1 ( point 1 2 ) )
( define p2 ( point 3 4 ) )
(display ( send p1 'getx )) ; 1
(display ( send p1 'gety )) ; 2
(display ( send p2 'getx )) ; 3
(display ( send p2 'gety )) ; 4
;(display ( send p1 'add p2)) ;(4 6)
(define p (send p1 'add p2))
(display ( send p 'info )) ; ( p o i n t 4 6)
(send p1 'setx! 5)
(display (send p1 'getx )) ; r e t u r n s 5
(display (send 'add 'getx))
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter