Haskell Y Hugs
•
• • •
Sintaxis elemental o Declaraciones o Definiciones o Comentarios Expresiones y valores Tipos Funciones y Definiciones o Paréntisis al rededor de los argumentos o Nombrando funciones o Multiples argumentos o Chequeo de tipos
Definiendo Funciones
• • • •
Definiciones con guardas Definiciones con la clausula where Definiciones con patrones o Patrones n+k Esquemapara la definición de funciones
Tipos Básicos
•
• • • • •
Enteros o Ejemplos o Ejemplo Patrones Booleanos o Ejemplo de ventas Números de punto flotante o Comparando números reales El tipo caracter El tipo String o La función show Posibles confunciones
Tuplas
• • •
Patrones sobre tuplas Sinónimos (seudónimos) de tipos El ejemplo de la fecha válida
Listas
• •
•
Ejemplos delistas válidas e inválidas Construcción de listas o Enumeración o Construcción de listas por intervalos o secuencias o Creación de listas por comprensión El ejemplo de las fechas válidas
• •
El ejemplo del día de mala suerte o Diseño e implementación Funciones básicas sobre listas o Concatenación de listas (append) o funciones sobre listas del prelude
Funciones sobre listas
•
•Recursión sobre listas o Diseño de la solución o Ejemplo de la función double o Ejemplo de la función length o Ejemplo de la función (++) o Ejemplo de función para no múltiplos de 6 Primera solución Segunda solución o Ejemplo de función para seleccionar solo dígitos de una cadena o Ejemplo extendido: Insertion Sort Más sobre patrones o Un ejemplo
Diseño: El ejemplo de la factura
• • • • • ••
Entendiendo el problema Identificar los Objetos Identificar las operaciones básicas sobre los objetos Elegir una representación para los objetos o Módulos Implementando operaciones básicas sobre los objetos Dividir el proceso en partes más manejables o ?`Posibles alternativas? Resúmen del proceso de diseño
Diseño: Un corrector ortográfico
• • • • •
Entender el problema Identificar losobjetos Elegir la representación de los objetos Dividir el proceso en partes más manejables Implementando las operaciones básicas sobre los objetos
Polimorfismo y funciones de orden superior
•
•
Polimorfismo o Tipos genéricos o Polimorfismo vs. Sobrecarga o Sobrecarga o Tipos calificados Funciones de ordenes superior o Mapping
o o
Folding Filtering
Tiplo Algebraicos de Datos
• •• •
Tipos Enumerables o Derivación de instancias Tipos Union Tipos algebraicos recursivos Tipos de datos polimórficos
Árboles en Haskell
•
•
Árboles o Terminología o Árboles binarios o Implementando árboles binarios en Haskell Árboles de búsqueda binaria o Relación con el algoritmo de búsqueda binaria o Algoritmo de búsqueda en un BST Implementación del algortimo de búsqueda paraun BST o Algoritmo de inserción en un BST Implementación del algoritmo de inserción en un BST o Algoritmo de borrado para BST Implementenación del algortimos borrado para BST
Haskell y Hugs
Mientras que Haskell es un lenguaje de programación funcional de alto nivel, Hugs es un interprete que entiende el lenguaje Haskell. Cuando se inicia Hugs, se obtiene una ventana de sesión Despues delmensaje de bienvenida, al inicio cada línea verá la palabra Hugs98 esto es un prompt, un indicador del estado de procesamiento. En esta ventana podrá digitar cualquier tipo de expresión matemática y podrá ver el resultado de esta presionando intro (enter). Una vez que el cálculo es computado y el resultado es mostrado, el prompt aparecerá nuevamente. Esto nos indicá que el intérprete está listo pararecibir más instrucciones. No se debe olvidar que el lenguaje o notación en que se escriben las expresiones es Haskell. Por ejemplo, puede introducir algunas expresiones artiméticas simples: Hugs> 1+3-2
2 Hugs.Base> y también otras no tan simples: Hugs> 15*0.30+20*0.30+19*0.40 18.1 Hugs> Este último ejemplo calcúla el promedio ponderado de tres notas, asígnando un peso de 30% a las dos...
Regístrate para leer el documento completo.