[plt-dev] Re: [plt-bug] all/10895: quasiquote printing is buggy, confusing

From: Sam Tobin-Hochstadt (samth at ccs.neu.edu)
Date: Wed May 5 13:20:59 EDT 2010

[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

Posted on the dev mailing list.