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

Reply via email to