ACFrOgBm3W6FRrjDHzdxtF9wqLiIVDkc9 nHgtOn6XxIwyD5DuLMrquVe lzGy3ukNjIKTmPv2Hhj6fkkLG5Mlk3jyhpps6gpLy dCESlR2BZl2w9gN8SsruZQktliC1n2lPP6eX uzr3EldZp3p
ACFrOgBm3W6FRrjDHzdxtF9wqLiIVDkc9 nHgtOn6XxIwyD5DuLMrquVe lzGy3ukNjIKTmPv2Hhj6fkkLG5Mlk3jyhpps6gpLy dCESlR2BZl2w9gN8SsruZQktliC1n2lPP6eX uzr3EldZp3p
ACFrOgBm3W6FRrjDHzdxtF9wqLiIVDkc9 nHgtOn6XxIwyD5DuLMrquVe lzGy3ukNjIKTmPv2Hhj6fkkLG5Mlk3jyhpps6gpLy dCESlR2BZl2w9gN8SsruZQktliC1n2lPP6eX uzr3EldZp3p
Funcional
Unidad 2. Programación
Funcional
ISC. GABRIEL UBALDO GONZÁLEZ CAUICH
Lenguajes Funcionales
Los primeros ordenadores se construyeron en los años cuarenta. Los primerísimos modelos
fueron ‘programados’ con grandes relés. Pronto se almacenaron los programas en la memoria del
ordenador, haciendo que los primeros lenguajes de programación hicieran su entrada.
En aquel tiempo el uso de un ordenador era muy costoso y era lógico que el lenguaje de
programación guardara mucha relación con la arquitectura del ordenador. Un ordenador consta de
una unidad de control y una memoria. Por eso un programa consistía en instrucciones para
cambiar el contenido de la memoria.
Con cada computación, el resultado depende de una u otra forma de los parámetros. Por esa
razón, una función es una buena manera de especificar una computación. Ésta es la base de la
programación funcional. Un ‘programa’ consiste en la definición de una o más funciones. Para la
ejecución de un programa, se dan parámetros a una función y el ordenador tiene que calcular el
resultado.
Fue en el comienzo de los años cincuenta cuando a alguien se le ocurrió usar esta teoría
efectivamente, como base de un lenguaje de programación. El lenguaje Lisp de John McCarthy
fue el primer lenguaje de programación funcional y fue el único por muchos años. Aunque
todavía se usa Lisp, no es un lenguaje que reuna las exigencias.
A la larga, cada investigador se dedicó a desarrollar su propio lenguaje. Para detener este
crecimiento incontrolado, un grupo de investigadores notables concibió un lenguaje que incluía
todas las mejores cualidades de los diferentes lenguajes. Este lenguaje se llama Haskell.
Las primeras implementaciones de Haskell fueron hechas a comienzos de los años noventa.
Este lenguaje es bastante ambicioso y de difícil implementación.
En el fichero prelude están las definiciones de las funciones estándar. Lo primero que hace el
intérprete de Haskell es analizar estas funciones estándar. ‘Prelude’ significa ‘preludio’: este
archivo se examina antes de que se puedan definir nuevas funciones.
En el prelude están definidas, entre otras, las funciones aritméticas. Por eso, se puede usar el
intérprete como calculadora.
Prelude> 5+2*3
Prelude> sqrt(2.0) o Prelude> sqrt 2.0 que es un lenguaje más natural.
Prelude> sin 0.3*sin 0.3+cos 0.3*cos 0.3
Prelude> sum [1..10]
Prelude>length[1,5,9,3]
Prelude>reverse[1..10]