Hi Christophe,
> (decar myfn arg
> # here arg is the first arg given when calling myfn, unevaluated
> )
>
>
> This is my attempt:
>
> (de decar args
> (let (fn (car args)
> arg (cadr args)
> body (cddr args))
> (set fn (list (list "arg") (list 'let arg "arg" (list 'run body))))))
You are close :)
I would do this:
(de decar Lst
(def (++ Lst)
(let Var (++ Lst)
(cons
Var
(list 'setq Var (list 'car Var))
Lst ) ) ) )
Test:
: (decar foo X
(msg X)
(length (eval X)) )
-> foo
: (pp 'foo)
(de foo X
(setq X (car X))
(msg X)
(length (eval X)) )
-> foo
: (foo (need 3))
(need 3)
-> 3
♪♫ Alex
--
UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe