!7 sS concepts = [[ ["ypnmpoezxeomgaof", "isInteger", "the JavaX function"], ["cukovmzoaabrjkad", "isQuoted", "the JavaX function"], ["vejphbmbhldbwuiw", "plus", "the JavaX function"], ["ijecnpcajbasqhgv", "bigint", "the JavaX function"], ["ghwqkbpspivlalrb", "X is the JavaX standard function called Y."], ["jcnbmtmfzktxhzyf", "X + Y"] ["mssmzemxxztdpphw", "X evaluates through Y."], ["yrxfddfomyzlqwri", "A leaf of type X evaluates through Y."], ]]; sS statements = [[ ghwqkbpspivlalrb ypnmpoezxeomgaof "isInteger" ghwqkbpspivlalrb cukovmzoaabrjkad "isQuoted" ghwqkbpspivlalrb vejphbmbhldbwuiw "plus" ghwqkbpspivlalrb ijecnpcajbasqhgv "bigint" mssmzemxxztdpphw jcnbmtmfzktxhzyf vejphbmbhldbwuiw yrxfddfomyzlqwri ypnmpoezxeomgaof ijecnpcajbasqhgv ]]; p { useConcepts(concepts); useFacts_cl(statements); printIndent(parse(print("1 + 2 + 3"))); printIndent(eval(parse(print("1")))); } Lisp parse(S s) { ret englishToLispWith(s, ll("jcnbmtmfzktxhzyf")); } O eval(Lisp l) { if (l == null) null; S evaluator = first(followForwardRelation_raw("yrxfddfomyzlqwri", l.head)); if (evaluator == null) fail("Can't evaluate operator " + l.head); ret conceptCall(evaluator, map(f eval, l)); }