250 likes | 427 Views
PARADIGMA FUNCIONAL. Funciones, Problemas y Diseño Modular. Función entre conjuntos a ser definida. Funciones, Problemas y Diseño Modular. Estructura de definiciones en forma jerárquica
E N D
Funciones, Problemas y Diseño Modular Función entre conjuntos a ser definida
Funciones, Problemas y Diseño Modular • Estructura de definiciones en forma jerárquica • En cada definición las funciones utilizadas a la derecho se referencia por un nombre (con el cuál fue definida). • Problema complejo = combinación de problemas simples. • Los módulos se referencia n con el nombre y no se conoce su estructura interna. • Nombres que no necesitan definición = "módulos primitivos". • Los no primitivos se denominan "abstractos".
Caso de Estudio • Análisis dimensional de fórmulas: • Fórmulas = operadores aplicadas a variables o constantes que tienen asociadas dimensiones y estas son expresiones formadas a partir de ciertas magnitudes. Ej. : masa (M), tiempo (T), longitud (L). • Velocidad tiene dimensión LT (cociente de longitud por cantidad de tiempo • Área tiene dimensión L (producto de dos longitudes) • Fuerza tiene dimensión MLT-2 (producto de masa por aceleración que es cociente entre velocidad y tiempo)
Caso de Estudio • Es necesario establecer: • Operadores que pueden ser empleados en construcciones de fórmulas (se consideraran los aritméticos: +, -, *, / ). • Para cada operador cual es la dimensión del resultado, en función de las dimensiones de los operandos (adoptamos unos supuestos). • Existen magnitudes fundamentales y que las dimensiones de las constantes y variables, tienen forma de un producto de esas magnitudes, c/u afectada por un exponente entero. (En el ejemplo anterior masa, longitud y tiempo).
Desarrollo del Diseño • Para programación interesa: definiciones de funciones dadas en forma de reglas que definen la construcción de cada objeto de dominio.
Desarrollo del Diseño • El argumento define su función asociada y su codominio es la dimensión posible. • Si la fórmula no es atómica, entonces es el resultado de aplicar un constructor a dos operando que son fórmulas a partir de los cuales aquella fue construida.
Desarrollo del Diseño • En el ejemplo del caso de estudio se caracterizó las dimensiones por el producto de tres magnitudes afectadas por exponentes enteros, así construir una dimensión requiere proveer valores a los exponentes. Así se puede detectar por una función si dos dimensiones son idénticas.
Desarrollo del Diseño • La adición de dos dimensiones esta definidas solo para el caso de que sean idénticas. Ej.:
Desarrollo del Diseño • El producto de dos dimensiones es otra dimensione cuyo exponentes son la suma de los respectivos exponentes de los operandos. Ej.:
Desarrollo del Diseño • El cociente de dos dimensiones es otra dimensión cuyo exponentes son la diferencia de los respectivos exponentes de los operandos. Ej.:
Estructura Lenguajes Funcionales • Variable = Argumento Nominal • Expresión = construcción de la imagen de éstas en la función. • Nombre: Es el mecanismo a través del cual una expresión arbitraria completa puede ser referenciada sin mostrar su estructura interna (Es una abstracción).
Estructura Lenguajes Funcionales Se lee una «expresión» es una «variable» o bien un «Nombre» • Se define Expresiones Atómicas («Variables» y «Nombre») y otras compuestas «Abstracciones Funcionales» y «Aplicaciones»
Estructura Lenguajes Funcionales • Abstracción Funcional con un único Argumento
Estructura Lenguajes Funcionales • Si aplicamos a una función conocida raíz cuadrada (sqrt). • Esto permite simplificar estructura
Importancia de los lenguajes funcionales • Problema= suma elementos de una lista • Lista Primitiva = Vacía (Sin elementos). • Constructor Lista = Cons (Un elemento y una lista = a otra lista). Si A es la lista <b, c, d,… z> Entonces cons (a, A) es la lista <a, b, c, d,… z>
Importancia de los lenguajes funcionales • Lista puede pensaste como. Un elemento (cabeza) y otro lista (cola).
Importancia de los lenguajes funcionales • Definir función e un esquema sucesivo. • Y así puede definir producto y etc. • «Orden Superior»= Concepto que autoriza a realizar Abstracciones sobre funciones, es decir que estas sean representativas por variables que son argumentos de otras funciones.
Ejemplos • Pertenencia a un conjunto • Unión
Ejemplos • Intersección