Actividad No.1
Actividad No.1
Actividad No.1
Introducción.
Ejemplo:
Haskell.
Ejemplo:
Mercury.
Clean.
Miranda.
no-estricto.
puramente funcional.
clase, se han añadido lentamente a los lenguajes principales. En Java, las clases
anónimas a veces pueden ser utilizados para simular clausuras. Sin embargo, las
clases anónimas no son siempre los reemplazos completos de las clausuras, ya
que tienen capacidades más limitadas. Por ejemplo, Java 8, incluye expresiones
lambda para reemplazar determinadas clases anónimas. Sin embargo, la
presencia de excepciones con comprobaciones en este lenguaje puede
desaconsejar el uso de programación funcional, ya que puede ser necesario para
capturar las excepciones que se deben controlar para después volverlas a lanzar
ellos (problema este que sin embargo no se produce en otros lenguajes sobre
JVM que no tienen excepciones comprobadas, como es Scala). Muchos patrones
de diseño orientado a objetos se pueden expresar en términos de programación
funcional, por ejemplo: el patrón de estrategia simplemente dicta el uso de una
función de orden superior, y el patrón de visitantes corresponde aproximadamente
a un catamorfismo, o doble también conocido como reducir, comprimir, o inyectar,
se refiere a una familia de funciones de orden superior que analiza una estructura
de datos recursiva y se recombinan con el uso de una operación de combinación.
Del mismo modo, la idea de los datos inmutables de la programación funcional se
incluye a menudo en lenguajes de programación imperativa, por ejemplo, la tupla
de Python, que es una matriz inmutable.
4) Usos en la industria.
hecho, hoy en día, está siendo usado para desarrollo de sistemas de simulación y
de control de telescopio. Haskell, es un ejemplo de lenguaje que se creó con
propósito de lenguaje de investigación pero que se ha usado para el desarrollo de
sistemas aeroespaciales, programación web y diseño de hardware. Otros
lenguajes de programación funcionales han sido usados en ámbitos comerciales y
financieros.
5) Funciones puras.
Si una función pura se llama con parámetros que no causan efectos secundarios,
el resultado es constante con respecto a la lista de parámetros (a veces llamada
transparencia referencial), es decir, si la función pura se llama de nuevo con los
mismos parámetros, el mismo resultado será devuelto (esto puede habilitar las
optimizaciones de almacenamiento en caché).
LISP.
ML.
Haskell.
OCaml.
F#.
Erlang.
Clojure.
7) Recursión.
Funciones de orden superior son funciones que pueden tomar otras funciones
como argumentos o devolverlos como resultados. En cálculo, un ejemplo de una
función de orden superior es el operador diferencial d / dx, que devuelve la
derivada de una función f. Las funciones de orden superior están estrechamente
relacionadas con las funciones de primera clase en las cuales las funciones de
orden superior y las funciones de primera clase pueden recibir como argumentos y
resultados otras funciones. La distinción entre los dos es sutil: "de orden superior",
describe un concepto matemático de funciones que operan sobre otras funciones,
mientras que la "primera clase" es un término informático que describe las
entidades del lenguaje de programación que no tienen ninguna restricción de su
utilización. Las funciones de orden superior permiten la aplicación parcial, una
técnica en la que se aplica una función a sus argumentos uno a la vez, con cada
aplicación devolver una nueva función que acepta el siguiente argumento. Esto le
permite a uno expresar, por ejemplo, la función sucesora como el operador de
suma aplicada parcialmente al número natural uno.
9) Funciones lambdas.
Si la función lambda sólo se utiliza una vez es utilizada una vez o un número
limitado de veces, una expresión lambda puede ser sintácticamente más simple
que una función nombrada. Las funciones lambda son muy comunes en la
programación funcional y otros lenguajes con funciones de primera clase, donde
cumplen el mismo papel para el tipo de función como literales para otros tipos de
datos.
10)Evaluación perezosa.