|/|/ Bendick wrote:
I understand the importance of different implementations of the same language having the same semantics, but are there any reasons why it would be a bad thing to create a language , suspiciously similar to scheme, where () is self evaluating?
For the record, here's Common Lisp's behaviour (at least how SBCL 0.8.16 works):
* () NIL * nil NIL * '(a b c) (A B C) * '(a b nil) (A B NIL) * '(a b ()) (A B NIL) * '(a b . nil) (A B)
I guess the Schemes which make () self quoting do this mainly for people coming from CL.
But I think requiring the user to quote it is fine. It's making for consistent list handling, and cases where you open a pair of parens in Emacs, and then forget to fill something in, will be trapped as error.
(I'm coming from Perl but I *like* that Scheme is explicit in such things (also for example the explicit string/number/boolean types).)
That said, this is an example where you could add a rule to a module processor to interpret code which relies on self-quoting () on an evaluation/compilation engine which doesn't allow those. I'll do it, promised (may take some time still).
Christian.