[gambit-list] How to handle and access and interact with object members host code

Marc Feeley feeley at iro.umontreal.ca
Mon Dec 7 11:13:19 EST 2015


At the Scheme level, you can express the OO style in various ways.  Here are 2 that come to mind:

1) Your “new” operator could return a closure which receives as a first parameter the name of the method to be called.  So you could:

(define o (new Lib))
(o print: "hello")

or

(define .print '.print)
(o .print "hello")

2) You could make .print a function that receives as a first parameter the object on which the method applies.  For example:

(define .print (lambda (self text) …))
(define o (new Lib))
(.print o "hello")

You can of course use macros to automate these styles.

Marc

> On Dec 7, 2015, at 8:31 AM, ben yakawp <ben.lists at yakawp.com> wrote:
> 
> hi
> Sorry if this too obvious, but I don't understand how gambit handles
> objects from the hosts backend.
> 
> 
> For example: if one would like to construct a 'Node' library for the JS
> backend, how would you do that? The whole node api seems to be object
> oriented.  But also the Python standard libaries (batteries) are layed
> out class based. You had to do something like
> 
> (define o (new Lib))
> (o.print "hello")
> 
> This looks wrong. What am I missing?
> 
> Regards
> ben
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list



More information about the Gambit-list mailing list