Alto orden significa que las funciones son también tipos, podés hacer
funciones que reciban funciones como parámetro y/o devuelvan
funciones. Esto te permite mayor expresividad y claridad, sobre todo a
la hora de trabajar con esquemas de funciones.
http://interglacial.com/hoj/hoj.html
En este caso es un esquema de recursión/iteración, de los cuales
existe un conjunto realmente acotado, por lo que no conviene
reinventar la rueda y sí conviene dejar al compilador/intérprete que
implemente todas las optimizaciones de bajo nivel que a nosotros ni se
nos ocurren.
Sobre esquemas de recursión: A tutorial on the universality and
expressiveness of fold:
http://www.cs.nott.ac.uk/~gmh/fold.ps
En JavaScript fold està implementado como reduce (sí, google map-
reduce, el mismo :)
https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference:Objects:Array:reduce
http://en.wikipedia.org/wiki/Fold_(higher-order_function)#Implementation
cito
http://w3future.com/html/stories/hop.xml
When you've grown bored of writing for-loops (like I did), methods
like reduce will be a welcome change in programming style. For me,
higher order programming has made Javascript a lot more fun, and I
hope you'll have fun with this too!
Cito
http://www.dc.uba.ar/materias/plp/2009/cuat1/descargas/teoricas/PF-Paradigmas-UBA.pdf
Esquemas de funciones
¿Qué ventajas tiene trabajar con esquemas?
Permite
definiciones más concisas y modulares
reutilizar código
demostrar propiedades generales
¿Qué requiere trabajar con esquemas?
Familiaridad con funciones de alto orden
Detección de características comunes
(¡ABSTRACCIÓN!)
Last but not least:
JavaScript: The World's Most Misunderstood Programming Language
http://javascript.crockford.com/javascript.html
On 27 feb, 09:51, Pablo Saavedra <
pablo.a.saave...@gmail.com> wrote:
> Como es eso?