!752 !include #1002960 // SimpleInterpreter static Lisp splitOps(Lisp x) { if (!x.is("[]")) ret x; new L op; new Lisp l; for (int i = 0; i < x.size(); i++) { Lisp c = x.get(i); if (c.is("[]", "()") || isQuoted(c.head) || isInteger(c.head)) { l.add(/*nlUnbracket*/(c)); op.add("*"); } else op.add(c.head); } l.head = join(" ", op); ret l; } static class MyModule extends Module { void go(Lisp x) { Lisp y = splitOps(x); printStructure(" ", y); } } p { new SimpleInterpreter i; i.interpret([=[ search [this and that] print [yay yay] ]=], new MyModule); }