Una introducción al patrón map-reduce

Implementarás un caso básico del patrón map-reduce en programación. Usa las funciones integradas de arreglos de C++ std::transform para map y std::accumulate para reduce para resolver el siguiente problema.

Dado un vector almacenado como un arreglo de números, encuentra la magnitud del vector (es similar a la función hypot()). Eleva al cuadrado cada coordenada, suma los cuadrados y devuelve la raíz cuadrada de esa suma.

Ejemplos

magnitude([3, 4]) ➞ 5

magnitude([0, 0, -10]) ➞ 10

magnitude([]) ➞ 0

magnitude([2, 3, 6, 1, 8] ) ➞ 10.677078252031311

Notas

  • El arreglo puede tener cualquier longitud.
  • El arreglo de entrada contendrá enteros (excepto en el caso del arreglo vacío [] ➞ 0).
  • Usa tanto std::transform(...) como std::accumulate(...).
  • No uses hypot().