!7 sS in = 'Input, out = 'Output; static L data; static JTable table; static JComboBox cbFunction; concept HistoryEntry { L data; S functionApplied; } p-subst { newCase(); db(); cbFunction = autoComboBox(standardFunctionNames()); JComponent controls = centerAndEast(withLabel("Function:", cbFunction), jbutton("Apply", f apply)); data = mapToListOfOrderedMap(sentenceTypeExamples(), in, out); cnew(HistoryEntry, +data); table = showTable(data); addToWindow(table, withMargin(controls)); makeAndCall_warmUp("lower"); } svoid apply { thread "Apply" { loading { fS fName = getTextTrim(cbFunction); data = map(data, func(Map map) { litorderedmap(in, makeAndCall(fName, map.get(in)), out, map.get(out)) }); table = showTable(table, data); } } }