2009/9/8 John Cowan <[email protected]>:
> No, you've misunderstood me.  The sole purpose of the 2 is to inform the
> compiler that the continuation should expect two arguments.  There is no
> injection into the caller's scope at all; the names a and b remain purely
> local.  Perhaps less bare-bones examples would be useful:

> (define sin+cos (lambda 2 (x) (values (sin x) (cos x)))

This also *looks* definitely too static…
I would want to be able to—just because it seems that I can—write

(define x 2)
(define sin+cos (lambda x (x) (values (sin x) (cos x)))

But this will parse differently.
If you want annotations to inform the compiler, it's better to have
them erasable, such as a sort of comment, isn't it?

#v sin+cos 2
 (define sin+cos (lambda (x) (values (sin x) (cos x)))

And then *try* to satisfy this hint (and handle the issues if I
redefine sin+cos)


Bah. Anyway, I'm not keen on values…


P!

-- 
Français, English, 日本語, 한국어

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to