Я не смог найти способ определить статическое поле в ракетке.Под статическим я подразумеваю поле, которое принадлежит всему классу, а не экземпляру.
(define counter% (class object%
(field (current-count 0))
(super-new)
(define/public (get-count)
current-count)
(define/public (next)
(set! current-count (+ current-count 1))
(set! total (+ total 1))
(list current-count total))))
(define c1 (new counter%))
(define c2 (new counter%))
(send c1 next)
(send c1 next)
(send c1 next)
(send c2 next)
Так что total
в этом примере должно быть статическим полем, а результат должен быть:
'(1 1)
'(2 2)
'(3 3)
'(1 4)