[gambit-list] address of var
Taylor R Campbell
campbell at mumble.net
Sun Feb 15 13:05:41 EST 2009
Date: Sun, 15 Feb 2009 00:45:46 -0800
From: lowly coder <lowlycoder at huoyanjinjing.com>
suppose I have:
int foo;
bar(&foo); <-- I want to duplicate this function call
suppose now, I have foo and bar in scheme land; how do I make the above
function call? grepping for "\&" in gambit-c.txt brings up the #& box
syntax, but I don't think that's what I want
The locations of variables are not first-class objects. The language
does not support directly reifying them like C can. If you have built
a location abstraction, say
(define-record-type <location>
(make-location reader writer)
location?
(reader location.reader)
(writer location.writer))
(define (location-value location) ((location.reader location)))
(define (set-location-value! location value)
((location.writer location) value)),
then you can reify the location of a variable <v> with
(make-locative (lambda () <v>)
(lambda (value) (set! <v> value))).
On the other hand, your program would probably be clearer if you just
used boxes to begin with.
More information about the Gambit-list
mailing list