On Wed, Nov 07, 2007 at 06:02:42AM -0800, Elf wrote:

> of course it does :)  all closures have their own namescope, as you put it. 

"Namescope" is what I come up with when lacking caffeine. That bug
has been fixed in the meantime.


> what you demonstrated above is the trick of associating state with a 
> lambda. :)

Yes. I mentioned it because newbies might follow the conversation.
As far as the style guide is concerned, I think it is useful to keep
the possibly differing semantics in mind:

(define (bla blubb) ; accept all bindings as they are now
  ...)

(define bla         ; I need some original bindings here
  (let ((...)) 
    (lambda (blubb) ...)))

So, (define (bla blubb) ...) is my default. I agree with all the
reasons you gave.

NB: the Chicken compiler assumes standard bindings by default.
Hence, redefining * will work in csi, but it will not work, if
compiled without (declare (not standard-bindings *)).
   Benedikt


_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to