Sie können einen äußeren Kontext von einer Funktion aus beeinflussen, die in diesem äußeren Kontext definiert ist, wodurch Sie die Wirkung von Referenzvariablen, d. h. Funktionen mit Seiteneffekten, erzielen.
(define (outer-function)
(define referenced-var 0)
(define (fun-affects-outer-context) (set! referenced-var 12) (void))
;...
(fun-affects-outer-context)
(display referenced-var)
)
(outer-function) ; displays 12
Diese Lösung schränkt das Ausmaß der Nebenwirkungen ein.
Andernfalls gibt es (define x (box 5)), (unbox x), usw., wie in einem Unterkommentar von Eli erwähnt, was der von erjiang vorgeschlagenen Lösung entspricht.