Is there a parameter or anything I can use to have '() print as empty, as it used to, in the latest versions of DrRacket. I've searched around, but couldn't find anything.
I'd just like to hold off on '() until I've taught abbreviating lists as '(a b "c" 1 2 3).
I understand that you teach that way, but I (and others) avoid quote entirely when teaching HtDP and so the current printing approach is quite awkward while the bogus expressions that you're talking about never come up. That's why I would be interested in a preference to go back to the prior approach.
NU tried teaching without quote. (I do consider quasrquote and unquote essential but ignore that) just symbols. Kids would still write 'empty which suggests we should remove symbols from the teaching languages and use only strings (in the hope that nobody writes "empty" in the end and expects '() after all).
The question is whether you would be willing to add a preference to the language dialog that brings back the old printer preference of rendering empty list as empty. (To be honest, this may go all the way back to HtDP/1e and the teaching language printer from back then.)
Since you own this panel, you're the right person to think about this.
What would you think about having '() or empty print as (list) instead?
Then it would be consistent (if ugly). I'm assume someone has considered this and though it was a bad idea, but no reason came to my mind while writing this.
Are you asking about the language dialog version of BSL or the #lang version? For the former, it seems not too difficult to add. For the latter, it would probably require a student to write something like:
Just a personal preference, but I would love everything that can be a parameter to be. That way I can put the settings in a file and have students require it. Getting them all to get things correct in different menus and windows has proven to be a source of confusion and annoyance. (Especially when they switch to a new computer, etc.)
In fact, if I could have the test-coverage highlighting as a parameter, I would love that.
In the student languages, the output of (list 1 2 3) is just (list 1 2 3). Having the output of (list) be '() introduces a new syntax element, the quote, that is not used other places and (imo) has no place early in the process of learning lists.
What should a beginner make of this interaction?
> (list 1 2 3)
(list 1 2 3)
> (list)
'()
I rarely attempt to explain quote to a beginner, but when I do it ends horriibly. (list 1 2 variable 4) isn't the same as '(1 2 variable 4) -- ouch. Beginners should stay away from this.