;tree-leaves function for modifying leaves with plug-in test (def t-l%% (tree test result) (if tree (if (alist tree) (cons (t-l%% (car tree) test result) (t-l%% (cdr tree) test result)) (if (test tree) (result tree) tree)))) ;Modified akkartik's solution (mac t-l (tree test result) `(t-l%% ,tree (fn (x) ,test) (fn (x) ,result))) ;Using the following input (t-l `(1 2 (3 4 (5 6))) (and (number x) (even x)) 'even-number) ;Results (1 even-number (3 even-number (5 even-number)))