Lamento no poder encontrar una manera de expresar la pregunta con mayor claridad en el título, pero esencialmente, es esto: casi todos los lenguajes funcionales tienen construcciones que te permiten procesar una lista variable de argumentos mediante recursividad de cola , como en este pseudocódigo Erlang-ish que resume una lista de números:¿Algún idioma funcional admite dividir y conquistar de forma nativa?
sumup(0,A) -> A.
sumup(N,A) -> sumup(N) + A.
Sin embargo, uno de los grandes atractivos de los lenguajes funcionales para mí es su paralelismo inherente. Y a pesar de que un problema como resumir una lista de números es, obviamente, bastante paralelizable, y casi seguro que sería manejado con mayor eficiencia por divide y vencerás, no conozco las características del lenguaje que hacen de esta una forma natural de programar. De hecho, a menos que el lenguaje tenga características que permitan leer la cantidad de argumentos basados en una función y recuperar argumentos basados en el índice, no veo cómo podría hacerlo . ¿Los lenguajes funcionales tienen características para fomentar la programación de divide y vencerás?
No del todo seguro de lo que entendemos por "dividir". Si, por "dividir", te refieres a la capacidad de dividir una colección para el cálculo recursivo (por ejemplo, tipo de fusión), entonces cualquier FPL puede hacerlo. Aunque me pregunto, si, por "dividir" te refieres a la partición en distintas rutas de ejecución (por ejemplo, hilos). – Alan
Bueno, no sólo la posibilidad de particionar una colección para el cálculo recursivo, pero para hacerlo más eficazmente que acaba de recursión de cola. – afeldspar