Vous êtes sur la page 1sur 12

Programacin Funcional

Alumno: Macias Hernandez Joel Antonio


Qu es la programacin funcional?

En ciencias computacionales, la programacin


funcional es un paradigma de programacin que trata
a la computacin como la evaluacin de funciones
matemticas y evita datos mutables y que cambien
de estado. Es un paradigma de programacin
declarativa, lo que significa que la programacin se
realiza con expresiones o declaraciones en vez de
sentencias.
En cdigo funcional, el valor resultante de una funcin
depende solamente de los argumentos que le son
pasados a la funcin, as que llamar a una funcin f
dos veces con el mismo valor para un argumento x
producir el mismo resultado f(x) cada vez.
Eliminando efectos secundarios, por ejemplo cambios
en el estado que no dependan de los inputs de la
funcin, puede hacer que sea mas fcil de entender y
predecir el comportamiento de un programa, lo cual
es uno de los principal motivantes para el desarrollo
de la programacin funcional
Cul es el uso de la programacin
funcional?
Inteligencia artificial
Procesamiento del lenguaje natural (SATELITE)
Reconocimiento de voz (LOLITA)
RAP (prototipado rpido de aplicaciones)
Definicin de lenguajes
Formalismo para definir otras teoras
En los ltimos aos, la consolidacin de estndares como Haskell y la aparicin de compiladores
cada vez ms eficientes, han hecho que se estn comenzando a usar en aplicaciones industriales:
Programacin de sistemas de telecomunicaciones y telefona (Erlang)
Programas para la asignacin de tripulaciones a vuelos (Haskell)
Base de datos para e-commerce
Otros.
Ms usos

Herramientas para Web


Herramientas y aplicaciones para redes
Software matemticos:
- Constructor de dominio algebraico (DonCon)
- Paquete matemtico para clculos (Mathscape)
Aplicaciones numricas (MC-SYM, FFTW)
Sistemas de bases de datos (Kleisli/CPL)
Sistemas operativos (Smart-card)
Sistema para iluminacin de teatro (Lula) Juegos
Evaluacin perezosa

En la teora de lenguajes de programacin, La evaluacin perezosa (del ingls


lazy evaluation) o llamada por necesidad es una estrategia de evaluacin que
retrasa el clculo de una expresin hasta que su valor sea necesario, y que
tambin evita repetir la evaluacin en caso de ser necesaria en posteriores
ocasiones. Esta comparticin del clculo puede reducir el tiempo de ejecucin
de ciertas funciones de forma exponencial, comparado con otros tipos de
evaluacin.
Los beneficios de la evaluacin perezosa son:
- El incremento en el rendimiento al evitar clculos innecesarios, y en tratar
condiciones de error al evaluar expresiones compuestas.
- La capacidad de construir estructuras de datos potencialmente infinitas.
- La capacidad de definir estructuras de control como abstracciones, en lugar
de operaciones primitivas.
Caractersticas de la evaluacin
perezosa
La evaluacin perezosa aumenta la velocidad de creacin/inicializacin a
costa de hacer despus algunas cosas mas lento.
Tambin ahorra memoria al no crear cosas hasta que sean necesitadas,
sin algn coste despus en el programa.
Usualmente la gente se enfoca en rendimiento cuando hablan de
evaluacin perezosa, pero los ahorros de memoria tambin son
importantes.
Lenguajes de programacin
funcionales puros
Un lenguaje de programacin puramente funcional, es un lenguaje que
solo admite programacin puramente funcional. Programas puramente
funcionales pueden ser escritos en lenguajes que no son puramente
funcionales.
Ejemplos de lenguajes de programacin funcionales puros:
Agda, Charity, Clean, Coq (Gallina), Curry, Elm, Frege, Haskell,
Hope, Joy, Mercury, Miranda, Idris, SequenceL
Haskell

Haskell es un lenguaje de programacin estandarizado multi-propsito


puramente funcional con semnticas no estrictas y fuerte tipificacin
esttica. Su nombre se debe al lgico estadounidense Haskell Curry. En
Haskell, "una funcin es un ciudadano de primera clase" del lenguaje de
programacin. Como lenguaje de programacin funcional, el constructor
de controles primario es la funcin. El lenguaje tiene sus orgenes en las
observaciones de Haskell Curry y sus descendientes intelectuales.
En los aos 1980 se constituy un comit cuyo objetivo era crear un
lenguaje funcional que reuniera las caractersticas de los mltiples
lenguajes funcionales de la poca, el ms notable Miranda, y resolviera
la confusin creada por la proliferacin de los mismos.
Caractersticas de Haskell

Haskell cuenta con evaluacin perezosa, emparejamiento de patrones,


comprensin de listas, clases tipo y polimorfismo. Es un lenguaje
puramente funcional, lo que significa que en general, las funciones en
Haskell no tienen efectos secundarios.
Haskell tiene un sistema de tipos fuerte y esttico basado en la
inferencia de tipo Hindley-Milner. La principal innovacin de Haskell en
este rea es el agregar clases tipo, originalmente concebidas como una
manera de agregar sobrecarga al lenguaje, pero encontrando muchos
mas usos.
Requisitos de instalacin de Haskell

Para realizar la instalacin de la plataforma Haskell, solo es necesario


tener suficiente espacio en el disco duro, y contar con un sistema
operativo.
Descargar la versin de la plataforma Haskell de acuerdo con el sistema
operativo que cuentas, desde la pagina oficial:
https://www.haskell.org/platform/
Seguir las instrucciones de instalacin que vienen dentro de la pagina.
Ejemplo de cdigo en Haskell

Funcin recursiva para calcular el factorial de un nmero natural:

--Funcin recursiva que calcula el factorial de un nmero natural


factorial :: Integer -> Integer
factorial n
| n < 0 = error "no existe el factorial para enteros negativos"
| n == 0 = 1
| otherwise = n * factorial (n-1)

Vous aimerez peut-être aussi