> I wasn't thinking of that at all, merely that the proverbial toaster
> obviously doesn't contain a file system

Oh, I see.  But the toaster doesn't have a REPL either, which I think will
turn out to be the central difference between what I'm thinking of as a
WG1 customer (REPL) and a WG2 customer (no REPL).  All those /features/
that everyone else is worrying about will be in libraries that either
language can load; it's just that every WG2 implementation /promises/ to
support them all, whereas the WG1 implementations just /do/ support
them without having promised.  :-)

Unless it turns out that something in WG2 breaks the jewel-like beauty of
Scheme, in which case WG1-Scheme implementations won't support it.

F'rinstance, WG1 implementations will have a library along the lines of

(define *value-tag* (cons '() '()))
(define (values . vals) (cons *value-tag* vals))
(define (call-with-values giver getter)
  (let ((val-list (giver)))
    (if (and (list? val-list)
             (not (null? val-list))
             (eq? (car val-list) *value-tag*))
        (apply getter (cdr val-list))
        (getter val-list))))

... which probably has some bug in it but you get the idea.

But WG1-Scheme should, ironically, support some things not in WG2-Scheme,
such as load, trace, transcript-on.  And its identiiers should be
case-insensitive, dammit!  WG2-Scheme's identiiers can be pom-sensitive
for all I care.  :-)

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

Reply via email to