во-первых: дженерики с помощью квадратных скобок, это же ужас, ибо граничит с оператором доступа по индексу, array[Idx, T] - это что? как это работает? T =
это уже в функциональном стиле, где функции определяются как-то так: f(x) = Q(x)
функциональный стиль поумолчанию НЕКРАСИВЫЙ, хоть сколько усирайся мол на функциональных япах можно сделать что-то проще, но какой ценой? Ценой ущербности синтаксиса? Императивные япы проще к пониманию и содержат в себе уже привычные вам конструкции вроде циклов, все что с си заложено