Fundamentos y Estrategias de Evaluación en Programación Funcional
Enviado por Chuletator online y clasificado en Magisterio
Escrito el en
español con un tamaño de 4,46 KB
Estrategias de Evaluación en Lenguajes de Programación
La comprensión de cómo y cuándo se evalúan las expresiones es fundamental en el estudio de los lenguajes de programación. A continuación, se detallan los conceptos clave sobre las estrategias de evaluación, la evaluación perezosa y la modularidad.
Definiciones de Estrategias de Evaluación
Definición: Es un conjunto de reglas para evaluar expresiones en un lenguaje de programación.
R: Estrategia de evaluación
Definición: Evaluación mediante paso de parámetros por valor, donde el cálculo se realiza inmediatamente.
R: Evaluación impaciente
Concepto: Una expresión que consta de una función aplicada a uno o más parámetros se refiere a:
R: Una estrategia básica
Evaluación Perezosa (Lazy Evaluation)
La Evaluación Perezosa es una técnica crucial en la programación funcional que optimiza el rendimiento y el uso de recursos.
Concepto y Mecanismos
Definición: Es una estrategia de evaluación que retrasa el cálculo de una expresión hasta que su valor sea necesario.
R: Estrategia de Evaluación Perezosa (o Evaluación perezosa)
Pregunta: ¿Cuál es la estrategia de la Evaluación Perezosa que comienza desde afuera hacia adentro y que elige el redex que está “más afuera”?
R: Call-by-name
Pregunta: ¿En qué partes se puede identificar la evaluación perezosa?
R: Codificación, recursión y rendimiento
Pregunta: ¿Qué modelo de evaluación perezosa se basa en aserciones que resulta generalmente más sinóptico y sencillo de leer y entender?
R: Modelo de evaluación defensivo.
Beneficios y Divisiones
Pregunta: Menciona una ventaja de la Evaluación Perezosa.
R: Reducir el consumo de memoria de una aplicación.
Pregunta: ¿Cuáles son los beneficios de la evaluación perezosa?
R: Incremento en el rendimiento al evitar cálculos innecesarios.
Pregunta: ¿Cuáles son las divisiones de la evaluación perezosa?
R: Estrictos y no estrictos
Formas de Programación Representativa
Pregunta: Menciona 3 de las 5 formas de programación representativa:
R:
- PROLOG
- Lisp
- ML
- Curry
- F-prolog
Generadores e Iteradores (Yield y IEnumerable)
Estos conceptos están estrechamente ligados a la implementación práctica de la evaluación perezosa en lenguajes modernos.
Concepto: Esta palabra reservada se utiliza para indicar que nuestra función ha producido un resultado, pero no ha terminado de ejecutarse y puede producir otro valor.
R: yield
Concepto: Después de obtenerlos, basta con usarlos dentro de un ciclo foreach o ir extrayendo elementos con la función next y el método First.
R: Un generator o un IEnumerable
Principio: A pesar de tener un ciclo infinito al momento de calcular los resultados, no significa que los calcule todos desde el inicio, sino que:
R: Los va calculando conforme nuestro código los va necesitando.
Programación Modular y Funciones
La programación modular es esencial para la organización y escalabilidad del código.
Pregunta: ¿Es uno de los métodos más conocidos para resolver un problema, dividiéndolo en problemas más pequeños, llamados subproblemas?
R: La programación modular
Pregunta: ¿Qué son los procedimientos?
R: Es un subprograma que realiza una tarea específica.
Tipos de Funciones
Pregunta: ¿Son las que el propio lenguaje Pascal pone a disposición del programador?
R: Funciones predefinidas
Pregunta: ¿Son funciones que declara el propio usuario, de igual manera que declara procedimientos?
R: Funciones definidas por el usuario