Hi Doug, the following works:
(be a (3)) (be foo @C (2 -> @C) ) : (? (foo (a @Z))) @Z=3 -> NIL I spied what 'call/1' is doing ;-) That number magic with '2' is a bit tricky, I'm never sure what level to pick. Basically it tells the interpreter with which level it should unify (here, the level outside of 'foo'). Actually, you could also use (be foo (@C) (2 cons (-> @C)) ) but this needs additional consing for the expression to match, so I would avoid it. It depends on what else is done with '@C'. Cheers, - Alex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe