История изменений
Исправление monk, (текущая версия) :
Например, сменить у объекта класс мальчика на девочку при вызове метода сменить пол.
Если у объекта есть метод «сменить пол», то это объект «человек», а не «мальчик». А если это функция «сменить пол», то просто меняй значение объекта на другое и все. Типа
(define (change-sex! person)
(define old-sex (get-field (unbox person) sex))
(set-box! person
(make-object (if (eq? sex 'male) female% male%) (unbox person))))
Исходная версия monk, :
Например, сменить у объекта класс мальчика на девочку при вызове метода сменить пол.
Если у объекта есть метод «сменить пол», то это объект «человек», а не «мальчик». А если это функция «сменить пол», то просто меняй занчение объекта на другое и все. Типа
(define (change-sex! person)
(define old-sex (get-field (unbox person) sex))
(set-box! person
(make-object (if (eq? sex 'male) female% male%) (unbox person))))