Hi Alex, > The initial question was whether to signal an error or not in such a > case. I think it should be an error, because the expression is not > well-formed.
ok, we have different definitions of "well-formed";-) > you handle the dot in a special way on the symbol level. This has no > advantages, except that you, by definition, cannot use the dot as a > symbol. I can: : . -> NIL and in a list: >> never use it. And, the user has always an option to intern a string. >> It might get tricky with the dot inside a list but it is possible; >> >> : '(1 2 3 . `(cons (intern ".")) 4 . 5) >> -> (1 2 3 . 4 . 5) > > This will not work, if I understand your implementation correctly. The > cons in the backquote is evaluated at read time, so your reader again > will see the interned dot and assume it is a dotted pair. Well, it does work. It works because the reader doesn't see the dot symbol but a cons pair. Using the dot symbol is no fun: : (def `(cons 'quote (intern ".")) 'hi) -> . : . -> hi : '(1 2 3 . `(val (intern "."))) -> (1 2 3 . hi) but the dot symbol is usually not used that way anyway. I quite like the escaping you introduced in picolisp recently (which prints the dot symbol differently from the cons dot). I'll think about introducing it into my printer and reader:-) Thanks for your feedback, Tomas -- UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=unsubscribe