Hi Cle,
> Your hint on IRC with the different matching schemes of call and retract
> were the gotcha! Unfortunately I couldn't use the new 'call' predicate,
> as it would need a level of '3' then :-( So I inlined it ...
> ...
> (be retract (@CL)
> (2 cons (-> @CL))
> (@ retract (list (car (-> @CL)) (cdr (-> @CL)))) )
Yes, clever! This produces the same pattern :-)
> :-))))) May I propose to add this predicate to pilog.l in a future
> release? :-)
Done and released. Thanks! :-)
> PS: But I still does not understand, why there is a '2' for the level
> necessary. A '1' should be enough, or does '1' mean current level? But
> then, what does '0' mean? :-/
Yes, '1' is the current level (as always in PicoLisp). The env skip loop
is basically
(while (gt0 (dec 'N)) # (in the C version in "src/subr.c:1543")
(setq Env (cdr Env)) )
so that everything less or equal to one gives the current env.
Cheers,
- Alex
--
UNSUBSCRIBE: mailto:[email protected]?subject=unsubscribe