Декларативное программирование ассоциируется обычно с такими языками, как Prolog, Haskell, Refal. В этом посте я расскажу о том, как можно декларативно программировать на Java. В качестве примера декларативного программирования часто приводя Parser Combinators из Haskell (
Почитать можно тут), разбирающих вход при помощи рекурсивного спуска с возвратом, но ничто не мешает нам реализовать их на Java. Начнем с лексического анализа. Поскольку мы собираемся писать достаточно общий набор комбинаторов, определим базовый класс для лексических анализаторов:
смореть статью полностью
тут