LINUX.ORG.RU

История изменений

Исправление 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))))