!7 cmodule ELEPrefixSuffixSplitter > DynPrintLog { /*transient LS prefixes = ll("un", "pre"), suffixes = ll("able", "like", "ology", "ing", "y", "ist", "ism");*/ start { dm_onUserUtteranceWithoutMine(input -> pnl(transitiveHullIteratorOfFunction( s -> stringEmits(r { processInput(s) }), litciset(input)))); } void processInput(S input) { //print(input); for (S s : mL("Common prefixes")) if (swic_notSame(input, s) && !isSpace(input.charAt(l(s)))) emit(joinPairWithSpace(pairOfNFirstAndRest(input, l(s)))); for (S s : mL("Common suffixes")) if (ewic_notSame(input, s) && !isSpace(input.charAt(l(input)-1-l(s)))) emit(joinPairWithSpace(pairOfRestAndNLast(input, l(s)))); } }