[plt-dev] Re: [plt-bug] all/10895: quasiquote printing is buggy, confusing
[redirecting to plt-dev]
On Wed, May 5, 2010 at 12:37 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
>
>> If we're going to have constructor-style printing of
>> structures, why not use the same for lists, vectors, and so on?
>
> From http://list.cs.brown.edu/pipermail/plt-dev/2010-April/002538.html :
>
> Printing with `quasiquote', meanwhile, mostly preserves the Lisp
> tradition of printing values that represent expressions as the
> expressions that they represent.
I, like Carl, find the new quasiquote printing very confusing.
Constructor-style printing for structures is great, and I like that
we've switched to that. But I think the semi-quasiquote style
printing is a mistake. As Carl said in the initial bug report, `(,(foo
1 2)) is a lot of notation. I'd much prefer (list (foo 1 2)),
avoiding the quoting and unquoting entirely. I don't see how the
quote from your earlier message suggests one printed form over the
other - the Lisp tradition is to print `read'able forms, and we're
switching to `eval'able forms. I don't see a reason from tradition to
go with one `eval'able form over another, and I find the
quasiquote-style very hard to parse visually.
As a slightly-related issue, I think mutable pairs are currently
handled incorrectly by the printer, since they should print as (mcons
a b) but instead print as {a . b}.
--
sam th
samth at ccs.neu.edu