Programación funcional sin duda.
Supongamos que te pregunto “¿Cómo funciona quicksort?”
Lo más probable es que responda con algo similar a “Particula una matriz basada en un elemento elegido al azar para que todos los elementos de la izquierda sean menores que el pivote y todos los de la derecha sean mayores que él. Y luego se repite en el lado izquierdo y derecho de la matriz “.
En programación funcional, literalmente haces eso. Divide la matriz y recurse.
- ¿Cómo funciona el enhebrado en Ruby 2.0 y cómo es diferente de Ruby 1.9.2?
- ¿Cuál es la solución para complicados procesos de construcción en el desarrollo de software?
- ¿Por qué es importante elegir el SDLC correcto al desarrollar un sistema?
- ¿Cuáles son algunos programas o programas educativos existentes que puedo aprovechar para hacer la transición al diseño de experiencias virtuales?
- ¿Cómo encajan los arquitectos de empresa / software en el modelo DevOps?
Pero eso no es lo que sucede en la programación imperativa.
En la programación imperativa, debe definir cómo va a hacer que el lado izquierdo de la matriz sea más pequeño que el pivote y cómo hacer que el lado derecho sea más grande. Debe hacer esto definiendo enteros [math] i [/ math] y [math] j [/ math], luego repita a través del lado izquierdo de la matriz hasta que encuentre un elemento en el lugar equivocado, y nadie piense como ese.
La programación funcional es una forma de programación altamente abstracta, lo suficientemente abstracta como para emular el pensamiento humano más de lo que haría la programación imperativa.
Para afirmar mi punto sobre las clasificaciones rápidas, mire las versiones Haskell y C de clasificaciones rápidas: Haskell