David A. Wheeler scripsit:
> It'd be easy for it to *say* "equal?", and recommend checking for
> cycles. That does complicate the implementation slightly, though not
> badly. R6RS, and R7RS draft 7, have equal? check for cycles but don't
> say what happens if there ARE cycles :-(, which makes it hard to use
> portably.
Draft 7 isn't yet published, but soon will be. Draft 6 is the current
published draft.
R6RS says that `equal?` "returns #t if and only if the (possibly
infinite) unfoldings of its arguments into regular trees are equal as
ordered trees." I sort of know what that means, but it isn't the kind
of thing I'd like to put into a standard. We have a window in the next
few days to get better language into draft 7, if you have any on tap.
> For portability the sample implementation would probably have to roll
> its own check, to make sure it actually works widely on real systems.
It's not obvious to me why you want to bother with this. No Scheme I
know of behaves well in the presence of cycles *in code*, and indeed
R7RS prohibits them explicitly. I know that curly-expressions can be
used outside of code, but I expect (and I think you expect too) that
code will be their dominant use.
> Do you think it's worth supporting "equal?"? It is slightly more
> complicated to implement (it's hard to beat "eq?"). However, it would
> be much more general, e.g., it'd allow the use of ,op.
I think it's a win to support `equal?`, with or without cycle detection.
> > R6RS #!-switch is the closest I can think of that can make a source
> > file self-descriptive about the lexical syntax it uses. Did you
> > think about using something like #!c-expr ?
>
> A switch might work, though I think the #! syntax for switches is
> absurd; the #! sequence is ALREADY reserved by most Unix/Linux
> systems, and they will not change it for Scheme :-(.
Only as the first two characters of a file. Putting a blank line before
a Scheme-specific switch will defeat the Unix interpretation (which, by
the way, is not part of Posix, though quite pervasive in everything but
Windows).
> > Of course you can argue that it's Gauche's responsibility to provide
> > a switch to non-standard syntax, e.g. #!gauche-curly-syntax, which
> > is reasonable.
>
> That's exactly what I'll argue. If there's a way we can simplify
> transition, though, I'd love to hear it.
I think the SRFI should prescribe the switch (say, #!srfi-105),
since there is no reason why it should be different on different
implementations.
--
Why are well-meaning Westerners so concerned that John Cowan
the opening of a Colonel Sanders in Beijing means xxxxxx@ccil.org
the end of Chinese culture? [...] We have had http://www.ccil.org/~cowan
Chinese restaurants in America for over a century,
and it hasn't made us Chinese. On the contrary,
we obliged the Chinese to invent chop suey. --Marshall Sahlins