Re: SRFI 105: Curly-infix-expressions John Cowan 28 Aug 2012 16:27 UTC
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