Hello,

>>> Otherwise you could make a wrapper around the array in the form of a
>>> closure. In that case, your example could be written
>>> (*=! (a i j) 2)
>
> You could even write macros for this.  I would actually find it more
> elegant than additional syntax.

The *=! operator could be easily created using `define-syntax'. But that's
not the issue. The most important part is array indexing (and -- as Johan
suggests -- accessing object's members). I think it would be nice to write
[a 5] instead of (array-ref a 5), and [o 'slot] instead of (slot-ref o 'slot)

That would be a fairly simple extension of syntax, I suppose.

I don't know how one could achieve this using macros. Of course, it's
possible to wrap the arrays and objects around with closures, as Johan
pointed out [and similarly to srfi-100 `define-lambda-object'], but this
has some other disadvantages.

Best regards
M.

Reply via email to