Hi Evan, > (de mylet ("Val" "Var" . "Body") > (bind (cons (cons "Val" (eval "Var"))) > (run "Body") ) ) > > Now it's even shorter! ^_^
Yes, you are right that it would sometimes be nice to have parameters for unevaluated arguments. As ever, this is a tradeoff between features and simplicity. Just for completeness: You probably meant the two variables "Val" and "Var" exchanged (as the variable is the first argument), and the second arg won't need to be evaluated if specified as a normal evaluating parameter. Cheers, - Alex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe