Hi Danilo,

> : (setq v1 (intern "12"))
> -> 12
> : # I expected \1\2
> : (sym? v1)
> -> T

Yup, that's right.

As a rule, only certain characters, which cannot be used directly in
internal symbol names like delimiters, white space, markup characters,
are escaped with '\'. The "meaning" of the total symbol name cannot
be considered by the printer.


> : (setq v2 \1\2)
> -> 12
> : (sym? v2)
> -> NIL
> : # I expected a symbol.
> : (num? v2)
> -> 12

This is a similar, though opposite, case. The escape is processed on the
character-level.


If you need a general and consistent marshalling, you could consider the
PLIO functionality ('pr' and 'rd', also used internally in the database
and inter-process communications) of PicoLisp. It doesn't look at the
lexical appearance of the data, but directly on the internal structures.

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

Reply via email to