Ты не понимаешь основной смысл ФП.
1) Ссылочная прозрачность. Не ссылочно-прозрачный код не является функциональным, хоть бы он был весь обвешан рекурсиями и функциональным синтаксисом. Это будет просто имитация, как большинство программистов имитирует разработку ПО, большинство менеджеров имитирует управление предприятием, и большинство безопасников имитирует безопасность. Сейчас время такое, повсюду театр, и он считается нормой. Надо ломать свои привычки, чтобы из этого вылезти.
2) Высокая плотность логики в коде, которую не даст никакой Паскаль, Си или Го. Она достижима, только когда мы не смешиваем алгоритм обхода и обработку отдельных элементов. А у тебя print прибит гвоздями к функции обхода.
С этого надо начинать, а потом уже смотреть на синтаксис.
Изучение ФП должно начинаться с Хаскеля, это язык, наиболее приближенный в лямбда-исчислению и комбинаторной логике:
http://learnyouahaskell.com/chapters
Можно и с Лиспа, но его динамическая типизация - очень спорный момент, хотя в ФП она не настолько страшна, как в императивщине:
http://www.paulgraham.com/onlisptext.html
Не рекомендую читать в русском переводе, получается терминологический бардак. Хаскель, по-моему, вообще машиной переводили.