Está en la página 1de 2

Nombre: Daniela Reyna Flores Matricula:1561881 Carrera: ITS

Dia: Jueves Hora: V2 Salón: 4200 Fecha: 31 de octubre 2019

Actividad 8.- Lenguajes funcionales

¿Cuáles son las características de los lenguajes funcionales?


R= la programación funcional define un programa como una función matemática que convierte unas entradas
en unas salidas, sin estado interno ni efectos laterales. Al trabajar con programación funcional, nos toparemos
con conceptos tales cómo:

 Funciones puras.
 Composición de funciones.
 Estados compartidos.
 Mutabilidad.
 Efecto secundario.

FUNCIONES PURAS
Las funciones puras, no son más que funciones, las cuales, dando el mismo input, siempre retornan el mismo
output, además de no tener efectos secundarios.

COMPOSICIÓN DE FUNCIONES
La composición de funciones es el proceso de combinar dos o más funciones, teniendo como finalidad ejecutar
cada una de estas funciones en secuencia para obtener un resultado en concreto.

ESTADO COMPARTIDO
El estado compartido es cualquier variable, objeto o espacio de memoria que exista en un ámbito compartido.
Un ámbito compartido puede incluir el alcance global o ámbitos de cierre.

MUTABILIDAD
Un objeto inmutable es aquel que no puede ser modificado una vez haya sido creado. Por ejemplo, una variable
en Java, no es un objeto inmutable.

EFECTOS SECUNDARIOS
Un efecto secundario es cualquier cambio de estado en la aplicación que sea observable fuera de la función
llamada.

Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones,
entendiendo éstas no como subprogramas clásicos de un lenguaje imperativo, sino como funciones puramente
matemáticas, en las que se verifican ciertas propiedades como la trasparencia referencial(el significado de una
expresión depende únicamente del significado de sus sub expresiones), y por tanto, la carencia total de efectos
colaterales.

Otras características propias de estos lenguajes son la no existencia de asignaciones de variables y la falta de
construcciones estructuradas como la secuencia o la iteración (lo que obliga en la práctica a que todas las
repeticiones de instrucciones se lleven a cabo por medio defunciones recursivas).

Existen dos grandes categorías de lenguajes funcionales: los funcionales puros y los híbridos. La diferencia
entre ambos estriba en que los lenguajes funcionales híbridos son menos dogmáticos que los puros, al admitir
conceptos tomados de los lenguajes imperativos, como las secuencias de instrucciones o la asignación de
variables. En contraste, los lenguajes funcionales puros tienen una mayor potencia expresiva, conservando a
la vez su transparencia referencial, algo que no se cumple siempre con un lenguaje funcional híbrido.
Nombre: Daniela Reyna Flores Matricula:1561881 Carrera: ITS
Dia: Jueves Hora: V2 Salón: 4200 Fecha: 31 de octubre 2019

Actividad 8.- Lenguajes funcionales

Lenguaje Características Código Ejemplo


Haskell Las características más interesantes de Haskell ? (2+3)*8
incluyen el soporte para tipos de datos y funciones 40
recursivas, listas, tuplas, guardas y calce de ? sum [1..10]
55
patrones. La combinación de las mismas pueden
resultar en algunas funciones casi triviales cuya
versión en lenguajes imperativos pueden llegar a
resultar extremadamente tediosas de programar.
Erlang El subconjunto de programación secuencial de -module(primer).
Erlang es un lenguaje funcional, con evaluación -export([hello_world/0]).
estricta,
asignación única, y tipado dinámico. hello_world() ->
"hello world".
La mayor fortaleza de Erlang es el soporte para
concurrencia.
Lisp Las listas encadenadas son una de las estructuras (format t "¡Hola, mundo!")
de datos importantes del Lisp, y el código fuente del
Lisp en sí mismo está compuesto de listas.

Como resultado, los programas de Lisp pueden


manipular el código fuente como una estructura de
datos, dando lugar a los macro sistemas que
permiten a los programadores crear una nueva
sintaxis de lenguajes de programación de dominio
específico empotrados en el Lisp.

La intercambiabilidad del código y los datos también


da a Lisp su instantáneamente reconocible sintaxis.
Todo el código del programa es escrito como
expresiones S, o listas entre paréntesis.

Scheme Estándar minimalista, variables con alcance léxico, (define (hello)


recursión de cola es mandatoria, sistema de marcos (display "Hello World !")
higiénicos, promueve un estilo de programación (newline))
funcional, los programas son datos y los datos son
programas, continuaciones explicitas, tipos
dinámicos, recolector de basura
y compilación nativa o maquina virtual.

Conclusion:

Biblografia:

También podría gustarte