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
