!7 sclass Entry { S code; transient F1 function; bool error; } cmodule FunctionsOnStrings > DynObjectTable { // API F1 getFunction(S code) { lock lock; Entry e = objectWhere(data(), +code); if (e == null) add(e = nu Entry(+code)); if (e.function == null && !e.error) { print("Loading function: " + code); try { e.function = codeWithHintsToFunctionOnString(code); } catch print ex { e.error = true; } } ret e.function; } }