Задача типа "как вывернуть ДП так, чтобы оно выглядело функциональненько, но осталось ДП"
ДП? Declarative? :) ‎· 9000