Не то чтобы я хотел хвалить себя — или, может быть, хочу? — но это действительно работает как шарм.
Напоминаю: мой А.И. database сохраняет любой объект Java без малейших усилий.
Вот еще несколько примеров:
concept Solution { S input, output; } concept Verified { new Ref<Solution> solution; } abstract concept Function { abstract S get(S s); bool dangerous; } concept TrimLeadingPunctuation extends Function { S get(S s) { ret s.replaceAll("^[. ]+", ""); } } concept RemoveLeadingFillers extends Function { L<S> fillers; S get(S s) { s = uniq(TrimLeadingPunctuation).get(s); S word = leadingWord(s); if (containsIgnoreCase(fillers, word)) s = dropPrefix(word, s); ret uniq(TrimLeadingPunctuation).get(s); } }
Задача состоит в том, чтобы упростить пользовательские предложения… например, преобразовать «э… да» в просто «да».
Нескольких строк выше достаточно, чтобы представить примеры ввода/вывода и функции, решающие задачу. «Концепция» — это просто класс Java, готовый к сохранению. Обратите внимание, что вы можете добавлять методы экземпляра к понятиям так же, как вы обычно это делаете с любым классом Java. Это действительно святой Грааль — настойчивость без каких-либо усилий.