Thomas Lord scripsit:

> In Scheme, one difference of significance is mutability (yes I know you
> like to tilt against that windmill).  Another is what `equal?' does.
> Another is a convenient (non-essential but convenient) disjointness.

Ah.  All of these are easily disposed of by a trivial SRFI 9 wrapper:

(define-record-type uninterned-symbol
   (make-uninterned-symbol string)
   uninterned-symbol?
   (string interned-symbol->string))

In order to extend "symbol?" to respond #t, you need to use
something like the SRFI-99 record inspector:

(define true-symbol? symbol?)
(define (symbol? x) (or (true-symbol? x)
                        (and (record? x)
                             (eq (record-rtd uninterned-symbol)))))

> I don't propose them for a core of Scheme.  I think they are a nice
> feature to have around.

Fair enough.

-- 
John Cowan  [email protected]  http://ccil.org/~cowan
In computer science, we stand on each other's feet.
        --Brian K. Reid

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

Reply via email to