sbool lispCalculateDeep_debug; // evaluate anywhere in the tree (e.g. Fib number 2-1 => Fib number 1) static Lisp lispCalculateDeep(Lisp x) { ret lispMap_after(x, func(Lisp l) { if (lispCalculateDeep_debug) print("lispCalculateDeep: " + l); if (l.is("sppxbuuqeetjmzuo", "jcnbmtmfzktxhzyf") && lispIsInt(l.get(0)) && lispIsInt(l.get(1))) ret lispInt(plus(lispToInt(l.get(0)), lispToInt(l.get(1)))); if (l.is("jxcubqjtqykhfvyo") && lispIsInt(l.get(0)) && lispIsInt(l.get(1))) ret lispInt(minus(lispToInt(l.get(0)), lispToInt(l.get(1)))); if (l.is("wdbphzfoxwlrhdyl") && lispIsInt(l.get(0)) && lispIsInt(l.get(1))) ret lispBool(lispToInt(l.get(0)).compareTo(lispToInt(l.get(1))) > 0); ret l; }); }