Усложнение программы в ходе её работы
Вот прочитал в одном месте, что в ходе длительного периода работы программа (а скорее, комплекс программ), написанная на функциональном языке программирования, усложняется настолько, что при ее дизассемблировании логику её работы уже никак не понять. Поэтому у меня возник вопрос, а как подобные программы устроены, что они усложняются в ходе своей работы? С Прологом мне кое-что понятно: там можно добавлять и удалять факты и правила по ходу действия. А что происходит в функциональных языках программирования? Если можно, то хотелось бы увидеть примеры, или ссылки на них (желательно русские, хотя и английские смогу прочесть).