Thank you for writing such a thorough reply. I really learned a lot from it=
PicoLisp's direct-style with fexprs is so different from the
quasiquotation-style with macros I'm used to from other lisps. I was
impressed by the conciseness of your revision:
> =C2=A0 (de mylet "Args"
> =C2=A0 =C2=A0 =C2=A0(bind (cons (cons (car "Args") (eval (cadr "Args"))))
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 (run (cddr "Args")) ) )
Although it seems like some readability is sacrificed by not being
able to name unevaluated arguments in the parameter list. I wish there
was a way to write something like this:
(de mylet ("Val" "Var" . "Args")
=C2=A0 =C2=A0(bind (cons (cons "Val" (eval "Var")))
=C2=A0 =C2=A0 =C2=A0 (run (cddr "Args")) ) )
Then again, I'm so biased by the languages I know better. I'm sure the
PicoLisp idioms seem second nature to you by this point.