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.

- Alex
UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=unsubscribe

Reply via email to