Detalhes
Escreva uma função ou programa que, dada uma matriz (ou lista), contendo apenas números inteiros, retorne ou produza uma matriz com todos os subelementos invertidos. Ou seja, inverta todos os elementos da matriz mais profunda, depois a segunda mais profunda etc. As dimensões não precisam ser especificadas, mas a função ou o programa deve funcionar com matrizes irregulares no formato nativo da sua linguagem de programação.
Exemplos
Este:
[[1,2], [3,4]]
Se tornaria este:
[[4,3], [2,1]]
Este:
[[[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9]],
[[10,11,12], [13,14,15], [16,17,18]],
[[19,20,21], [22,23,24], [25,26,27]],
[[28,29,30], [31,32,33], [34,35,36]],
[[37,38,39], [40,41,42], [43,44,45]],
[[46,47,48], [49,50,51], [52,53,54]]]
Se tornaria este:
[[[54,53,52], [51,50,49], [48,47,46]],
[[45,44,43], [42,41,40], [39,38,37]],
[[36,35,34], [33,32,31], [30,29,28]],
[[27,26,25], [24,23,22], [21,20,19]],
[[18,17,16], [15,14,13], [12,11,10]],
[[ 9, 8, 7], [ 6, 5, 4], [ 3, 2, 1]]]
Este:
[[[1,2]],
[[3,4], [5]],
[[6,7,8], [9], [10,11]],
[[[12,13], [14,15]], [16], [17,18,19,20]],
[21]]
Se tornaria este:
[[21],
[[20,19,18,17], [16], [[15,14], [13,12]]],
[[11,10], [9], [8,7,6]],
[[5], [4,3]],
[[2,1]]]
Bônus
Espero que isso encoraje respostas em algumas linguagens de programação orientadas a objetos ...
-50% Bytecount Se o seu programa pode tomar como entrada uma matriz (ou lista) com seus membros de vários tipos (eles podem estar na forma de objetos) e reverter com êxito todas as matrizes.
Este:
[["Foo",["Bar",1]],
2,
["Baz"],
[[["Qux"],3],3.14]]
Se tornaria este:
[[3.14,[3,["Qux"]]],
["Baz"],
2,
[[1,"Bar"],"Foo"]]