Немного о скобках
Для ботанских развлечений некоторые языки подходят больше других. Так, например, предыдущая задача должна решаться не рубями, а немного более функциональным языком. Например, Clojure.
Как-то так:
Наличие функции iterate и отсутствие ООПе-церемоний позволяет скукожить код в разы, улучшив при этом читаемость. В некоторых других языках тоже есть iterate.