Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Generalidades
Aunque al final no se utilice a Haskell para implementar proyectos “reales”, muchos de los
conceptos utilizados, pueden ayudarnos a programar mejor en cualquier otro lenguaje.
Este es un lenguaje simple llamado “lambda calculo” (C), el cual permite la descripción de las
funciones matemáticas y de sus propiedades. Fue introducido por Church en los años 30 como
fundamento de la matemática (funciones y lógica) y constituye un modelo formal.
El principal problema del C como lenguaje funcional es la libertad para combinar términos,
ya que es un lenguaje sin tipos (type–free); una forma de restringir tal libertad es “C con tipos”,
introducido también por Church (1934) y Curry (1941).
El cálculo lambda es universal porque cualquier función computable puede ser expresada
y evaluada a través de él. Por lo tanto, es equivalente a las máquinas de Turing.
Lambda expresiones
Sintaxis
Muchos lenguajes funcionales son a menudo descritos como un súper C o C extendido; de
hecho, los programas funcionales puros deben poder ser traducidos a esta notación.
EJEMPLO
y se escribe en C así:
• El punto (.) se usa para separar el argumento (o variable instanciable) del cuerpo de la función.
Las expresiones como las del ejemplo (x.2 * x) se llaman –abstracciones (para simplificar,
A) y son un caso particular de –expresiones (para simplificar, E) o –términos.
Etimología
El término memoization fue acuñado por Donald Michie en 1968, y deriva del latín de la palabra
memorando (para recordar), y por lo tanto el significado se refiere a los resultados de una
función en algo para ser recordado. Por ello, memoization podría confundirse etimológicamente
con memorización, sin embargo, “memoization” tiene un significado específico en la
informática.
Información general