Вы можете воздействовать на внешний контекст изнутри функции, определенной в этом внешнем контексте, что дает вам эффект передачи по ссылочным переменным, то есть функции с побочными эффектами.
(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
Это решение ограничивает объем побочных эффектов.
В противном случае есть (определите x (вставка 5)), (unbox x) и т. Д., Как указано в подкомментарии Eli, что совпадает с решением против, предложенным erjiang.