Даа... Перевод чисто императивных алгоритмов на чисто функциональный язык - дело неблагодарное... Не пытайтесь разобраться в моём коде - это нереально...