Hi Edwin,

> at the moment, we have transient symbols as "my transient symbols".
> this syntax for this is just fine. what if we can express "MyParam", a
> transient symbol as \MyParam (or something similar) (a personal quirk,
> i dislike double quotes too much).

I'm completely with you. In fact, the very first version of PicoLisp in
1988 used a colon, as :MyParam for transient symbols (strings were only
available as lists of numbers).

I was thinking of re-introducing a syntax like :MyParam, or perhaps
MyParam, but this saves only a single character over "MyParam", and
doesn't look so very much better.

The main reason of not doing this was that it adds yet another syntax
rule, increasing the confusion about transient symbols. If both :MyParam
and "My Param" are transient symbols, people will forget about the fact
that they are the same internally, and then a statement where indeed a
"string" must be assigned, like

   (setq "My Parm" "Mein Parameter")

as it is basically used for localization, will not be understood.

Thus, the only way to have a _single_ syntax for symbols with and
without spaces, a markup like underlining (or some other highlighting
which also influences white space) seems the only consistent solution to
me.


> maybe implement '\' as a read macro (?) to convert \MyParam to
> "MyParam" during read time.

The backslash is already a read macro for escaping characters (in
internal and transient symbols). For example:

   : (setq a\ b 123)
   -> 123
   : a\ b
   -> 123


> anyway, i'm not pushing this too much. was just thinking out loud.

Not at all. This is an important issue, which also bites me quite some
time.

Cheers,
- Alex

-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to