La programación funcional se basa fundamentalmente en el cálculo lambda . No veo cómo esto puede simplificarse para que un niño de 8 años lo entienda.
Al menos con la programación de procedimientos, puede ofrecer ideas intuitivas como hacer algo condicionalmente (if-then-else), o hacer algo repetidamente (loop), o reutilizar un fragmento de código de otro lugar (procedimiento o función).
Incluso con la programación orientada a objetos, puede ofrecer ideas intuitivas, como un objeto que tiene propiedades y comportamiento ( métodos ). Puede comparar una clase con un cortador de galletas y discutir la herencia (un cortador de galletas puede parecerse a otro cortador de galletas pero con pequeñas diferencias).
Pero, ¿qué ideas intuitivas puede ofrecer para funciones y cierres de primera clase , o para la inmutabilidad de datos? ¿Qué tal la coincidencia de patrones o la composición funcional ? Estas cosas son inherentemente matemáticas.
- ¿Puede un maestro saber cuándo un estudiante no está alcanzando su máximo potencial en la clase?
- ¿Cómo le enseño a mi esposa, que gasta cada dólar que gana, cómo presupuestar e invertir antes de decirle que se casó con un millonario?
- ¿Cuáles son las ventajas de ser profesor de ciencias?
- ¿Hay una buena manera de llegar a los niños de todo el mundo y enseñarles una educación sexual adecuada?
- ¿Cuál es la mejor manera de aprender y enseñar inglés? ¿Qué cosas se consideran?
La mejor sugerencia que tengo es enseñar a los niños Smalltalk. ¿Por qué? En primer lugar, es un lenguaje muy, muy simple y fácil de aprender. ¡Toda su sintaxis puede caber en una tarjeta postal!
En segundo lugar, fue diseñado por el famoso Alan Kay et al. en Xerox PARC para enseñar programación a niños. ¡No hay mejor pedigrí que eso!
Tercero, Smalltalk depende en gran medida del uso de bloques , que son, en esencia, funciones y cierres de primera clase. Entonces, sin entrar en el cálculo lambda, los niños tendrán una idea automática de cómo se pasan los bloques de código y cómo se devuelven de otros bloques. Es la única forma en que Smalltalk funciona.
Más tarde, pueden facilitar su acceso a la programación funcional con esta comprensión básica de los bloques Smalltalk. Luego pueden aprender que la inmutabilidad se trata de prevenir la asignación de variables.
Si esto tiene sentido para usted, así es como puede comenzar en Smalltalk: la respuesta de Richard Kenneth Eng a ¿Cuál es el mejor lenguaje de programación para que un principiante aprenda desde cero?