schemepass-by-referencer6rsreturn-by-reference

Scheme pass-by-reference


How can I pass a variable by reference in scheme?

An example of the functionality I want:

(define foo
  (lambda (&x)
    (set! x 5)))

(define y 2)

(foo y)

(display y) ;outputs: 5

Also, is there a way to return by reference?


Solution

  • See http://community.schemewiki.org/?scheme-faq-language question "Is there a way to emulate call-by-reference?".

    In general I think that fights against scheme's functional nature so probably there is a better way to structure the program to make it more scheme-like.