Я много играю с массивами и хэшами в ruby и в итоге получаю такой код:
sum = two_dimensional_array.select{|i|
i.collect{|j|
j.to_i
}.sum > 5
}.collect{|i|
i.collect{|j|
j ** 2
}.average
}.sum
(Давайте все притворимся, что приведенный выше пример кода теперь имеет смысл...)
Проблема в том, что, хотя TextMate (мой любимый редактор) довольно легко подбирает простые блоки {...}
или do...end
, он не может их понять (что понятно, поскольку даже я не могу найти "правильный" способ свернуть вышеперечисленное) где вышеперечисленные блоки начинаются и заканчиваются, чтобы сложить их.
Как бы вы сложили приведенный выше пример кода?
PS: учитывая, что у него может быть 2 уровня складывания, меня интересуют только внешние последовательные (блоки с i)