> The serialized representation of a closure contains a tag instead of the actual code
Was going to ask about that.
For readers unfamiliar with Common Lisp, the output is essentially equivalent to
"(eval '(s:f '1 '(4)))"
because #. is a reader macro that means "instead of returning the s-expression, return the result of evaluating it". I.e. it's a way to run arbitrary Lisp code at parsing stage. This is not something you want to see in a serialization format.Ignoring the security implications[0], the result seems to rely on the runtime state of the Lisp image (I assume that '1 bit is a key to the actual code of the function) - so you won't be able to persist it and load after program restart, or send it to another instance of the program.
--
[0] - We're talking serializing code here anyway, so adding arbitrary code execution to paring changes nothing.