RAZONANDO CON HASKELL UN CURSO SOBRE PROGRAMACIÓN FUNCIONAL. A Charo, Pepa, Ana y Chari INTERNATIONAL THOMSON EDITORES SPAIN PARANINFO
|
|
- Silvia Casado Suárez
- hace 7 años
- Vistas:
Transcripción
1 RAZONANDO CON HASKELL UN CURSO SOBRE PROGRAMACIÓN FUNCIONAL A Charo, Pepa, Ana y Chari INTERNATIONAL THOMSON EDITORES SPAIN PARANINFO
2 hola
3 Blas Carlos Ruiz Jiménez, Francisco Gutiérrez López y José Enrique Gallardo Ruiz Profesores del Departamento de Lenguajes y Ciencias de la Computación Pablo Guerrero García Profesor del Departamento de Matemática Aplicada E.T.S.I. Informática. Universidad de Málaga RAZONANDO CON HASKELL UN CURSO SOBRE PROGRAMACIÓN FUNCIONAL Málaga, enero de 2004
4 c Blas C. Ruiz, Francisco Gutiérrez, Pablo Guerrero y José E. Gallardo Edita: Imprime: ISBN:... Depósito Legal:... Composición: Realizada por los autores en LATEX2ɛ.
5 ÍNDICE GENERAL Índice de figuras Prólogo Convenios XIII XVII XXIII I Programación funcional básica con HASKELL Programación funcional Funciones Sesiones y declaraciones Reducción de expresiones Órdenes de reducción aplicativo y normal Evaluación perezosa Sobre HASKELL Introducción a HASKELL El lenguaje HASKELL Tipos simples predefinidos El tipo Bool El tipo Int El tipo Integer El tipo Float El tipo Double El tipo Char Operadores de igualdad y orden Constructores de tipos predefinidos Tuplas Listas El constructor de tipo ( ) Comentarios Operadores Operadores frente a funciones Comparación de patrones Patrones constantes
6 VI Índice general Patrones para listas Patrones para tuplas Patrones aritméticos Patrones nombrados o seudónimos El patrón subrayado Errores comunes Patrones y evaluación perezosa Expresiones case La función error Funciones a trozos Expresiones condicionales Definiciones locales Expresiones lambda Sangrado Ámbitos y módulos Ejercicios Funciones de orden superior y polimorfismo Parcialización Aplicación parcial Secciones Funciones de orden superior Una función de orden superior sobre naturales Polimorfismo La composición de funciones Otras funciones polimórficas Polimorfismo en listas Polimorfismo en tuplas Un iterador polimórfico sobre los naturales Definición de tipos Sinónimos de tipo Definición de tipos de datos Tipos enumerados Uniones Productos Tipos recursivos Tipos parametrizados (o polimórficos) Definiciones newtype Propiedades de funciones La propiedad universal de foldnat Sobrecarga y polimorfismo restringido Un ejemplo de sobrecarga Ejercicios
7 Índice general VII 5. El sistema de clases de HASKELL Tipos y clases de tipos. Jerarquía de clases El sistema de clases Declaración de clase La clase Eqde PRELUDE Contextos Instancias paramétricas Subclases. La clase Ord de PRELUDE Un ejemplo: los enteros módulo n Intersección de clases Visualizando y leyendo datos. Read y Show Las clases Num, Integral y Fractional de PRELUDE Los tipos numéricos de HASKELL Ambigüedad en las constantes numéricas Promoción numérica Ejemplo: los racionales como instancias genéricas Ejercicios Programación con listas El tipo lista Secuencias aritméticas. La clase Enum Concatenación de listas Inducción sobre listas Selectores Emparejando listas Aplicando una función a los elementos de una lista Filtros Listas por comprensión Semántica de listas por comprensión Plegado de listas foldr La propiedad universal de foldr foldl Ordenación de listas Ordenación por inserción Ordenación por mezcla Ordenación rápida Problemas combinatorios Los segmentos iniciales de una lista Los segmentos consecutivos de una lista Permutaciones de una lista Otras funciones predefinidas Ejercicios
8 VIII Índice general 7. Entrada y salida Operaciones de entrada y salida El problema de la entrada y salida El tipo IO Excepciones Un formateador de textos Una implementación ineficiente Una implementación eficiente Utilidades para el manejo de documentos Una clase de tipos documentables Ejemplos II Programación avanzada Evaluación perezosa. Redes de procesos Evaluación perezosa Argumentos estrictos Procesando estructuras infinitas en forma perezosa Listas parciales y listas infinitas Aproximaciones o listas parciales Inducción sobre listas parciales Redes finitas de procesos La criba de Eratóstenes El triángulo de Pascal Procesos con varias entradas La lista de factoriales Los números de Fibonacci Sucesiones genéricas Los números de Hamming Sucesiones contadoras Ejercicios Programación con árboles y grafos Árboles Funciones de orden superior sobre árboles Árboles binarios Árboles binarios de búsqueda Funciones de orden superior para árboles binarios Inducción para árboles binarios Arrays Una implementación ineficiente Una implementación eficiente Grafos y búsqueda en grafos Búsqueda en anchura y en profundidad Los grafos como instancias de una clase uniparamétrica
9 Índice general IX 9.5. Grafos con pesos Grafos con pesos como instancias de clases biparamétricas Una clase HASKELL para grafos con pesos Ejercicios Programación modular y tipos abstractos de datos Módulos Bibliotecas estandarizadas Declaraciones de módulos Importación Importación cualificada Tipos abstractos de datos Representación Representación con una interfaz no sobrecargada Representación con una interfaz sobrecargada El TAD Conjunto (Conjunto) El TAD Lista Ordenada (OrdLista) El TAD Diccionario (Diccionario) Un índice KWIC (KeyWord In Context) Datos del problema La función kwic Algunas funciones y sinónimos de tipos útiles La función creanoclaves Modelo de datos para la resolución La función kwic Ejercicios Programación con mónadas Concepto de mónada Clases de constructores de tipos La clase Functor La clase Monad La clase MonadPlus Interpretación de las propiedades Interpretación del operador (>>=) Relación entre funtor y mónada La notación do Ejemplos de mónadas La mónada identidad La mónada escritora La mónada lectora La mónada de transformadores de estado La lista como mónada indeterminista La mónada error Operaciones con mónadas Combinando mónadas
10 X Índice general Transformadores monádicos Ejercicios III Aplicaciones Algoritmos numéricos programados funcionalmente Introducción Búsqueda de puntos fijos Extrapolación por paso al límite Álgebra lineal numérica Series de potencias Ejercicios Puzzles y solitarios Algunos problemas combinatorios El producto máximo con un conjunto de dígitos El problema de las vasijas El problema de los caníbales y los misioneros El solitario de Abreu La sopa de letras Un esbozo de la solución Buscando las apariciones de una palabra Movimiento de matrices y lecturas de líneas El problema de las ocho reinas Soluciones mediante listas por comprensión Solución mediante búsqueda en grafos Grafos acíclicos Programación funcional estilo PROLOG Ejercicios Analizadores Analizadores y la clase Read Gramáticas y la notación BNF El tipo Read La clase Read Analizadores monádicos Secuenciación Alternancia Filtros Iteración Elección parcial Un analizador para términos Ejercicios
11 Índice general XI 15. Simulación Generación de aleatorios por congruencias Programando secuencias pseudo-aleatorias Algunos resultados teóricos Simulación en el juego del póquer Generando un mazo de cartas Búsqueda de ciertas jugadas: parejas, tríos, etc Contando todas las jugadas Obteniendo semillas y aleatorios a través del sistema Un modelo monádico para la simulación El juego de la lotería primitiva Realizando escrutinios Generación de sorteos Estudio estadístico de ciertas combinaciones Descripción monádica del juego de la primitiva Simulación monádica de juegos con dados Mezclando valores producidos por varias acciones Plegando valores monádicos Repetición de varias tiradas con varios dados Contabilizando jugadas IV Aspectos teóricos Técnicas de programación y transformaciones de programas Inducción estructural Parámetros acumuladores Los números de Fibonacci Cálculo del factorial de un natural Plegados estrictos Transformación de programas. El modelo desplegar/plegar Un ejemplo sencillo de transformación Las reglas desplegar/plegar Reducción de la complejidad por transformación Corrección parcial de los programas transformados Programas a partir de especificaciones Especificaciones ejecutables Especificaciones no ejecutables Transformación de una especificación no ejecutable Semántica denotacional de un lenguaje imperativo Representación de entornos con tuplas Representación de entornos con funciones El lenguaje imperativo de Dijkstra Una semántica determinista para el lenguaje de Dijkstra Una semántica indeterminista para el lenguaje de Dijkstra Ejercicios
12 XII Índice general 17. Introducción al λ-cálculo Sintaxis del lambda cálculo δ-reducción y β-reducción λ-teorías Eta-conversión y extensionalidad Reducción generada por un programa Formas normales. Teoremas de Church-Rosser Órdenes de reducción. Teorema de estandarización Lambda definibilidad Operaciones lógicas Computabilidad Puntos fijos y recursión Listas en el λc Los sistemas de tipos de Church y de Curry Propiedades del sistema λ Curry La correspondencia de Howard-Curry-de Bruijn Ejemplos prácticos de inferencia de tipos Caso de un único argumento Caso de varios argumentos Caso en que aparecen otras variables predefinidas Inferencia de tipos en presencia de recursión Inferencia de tipos en presencia de patrones Reglas elementales para inferencia de tipos El λ-cálculo polimórfico Inferencia de tipos en presencia de polimorfismo Un teorema de parametricidad para funciones polimórficas Bibliografía 499 Índice alfabético 503
13 ÍNDICE DE FIGURAS 1.1. Representación perezosa de la función doble Reducción perezosa de doble (doble 3) Asociatividad y prioridad de los operadores predefinidos Sangrando una declaración Sangrando dos declaraciones Aplicaciones parciales La función unavez La función dosveces La composición de funciones Cálculo de espar usando foldnat Jerarquía de clases de PRELUDE Instancias HASKELL estandarizadas para los tipos de PRELUDE La clase Ord La clase Enum head, tail, init y last take, drop y (!!) Reducción de foldr f z [x 1,..., x n 1, x n ] Reducción de foldr1 f [x 1,..., x n 1, x n ] Reducción de foldl f z [x 1,..., x n 1, x n ] Ordenación por mezcla Ordenación rápida Diálogos con pretty printer Diálogos con pretty printer La función incr Red para la evaluación de los enteros positivos Red de procesos para sucesiones Red de procesos para la criba de Eratóstenes Red para el triángulo de Pascal Red de procesos para la lista de factoriales Red para el cómputo de los números de Fibonacci
14 XIV Índice de figuras 8.8. Red para el cálculo de la sucesión xn Red para el cómputo de los números de Hamming Red de procesos para los pares de naturales Un árbol con 7 elementos Un árbol ordenado Eliminación de un dato Árbol para creaarray [0..7] Un grafo Otro grafo Árbol de visitas en profundidad Árbol de visitas en anchura Un grafo sencillo Un grafo con pesos Un diccionario Cabecera del módulo Conjunto Definición de (>>=) Propiedad (m1) Propiedad (m2) Propiedad (k1) Propiedad (k2) Propiedad (k3). Primera función Propiedad (k3). Segunda función Cómputos con (>>=) Cómputos con (>>=) gráficamente Definición de fmap a través de una mónada Definición de join a partir de una mónada Definición de (>>=) a partir de join y fmap El operador (>>=) de la mónada Lectora Un transformador de estados (>>=) para transformadores de estados Cálculo de la raíz n-ésima por el método de Newton-Raphson Traspuesta de una matriz El problema de las vasijas El problema de los caníbales y misioneros Tablero de cuatro filas para el solitario de Abreu. Un movimiento Posición inicial y final del ocho-puzzle. Un movimiento Direcciones en la lectura Reconstrucción de las diagonales noataca 2 [5, 1, 4] = True noataca 3 [5, 1, 4] = False Dos reinas que se atacan El problema de las ocho reinas
15 Índice de figuras XV Las torres de Hanoi El problema de las Torres de Hanoi con cuatro torres El tablero del solitario Un cuadrado mágico El problema de los tres sombreros Los cuatro caballos El problema de los trenes Un polígono La vía Algunos términos notables El sistema de tipos de Curry El λ-cálculo polimórfico
Programación Declarativa Haskell Informática Sistemas Curso Pepe Gallardo Universidad de Málaga. Tema 8. Listas
Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 8. Listas 8.1 Secuencias aritméticas 8.2 Algunas funciones predefinidas 8.3 Listas por comprensión
Más detallesInformática Haskell Matemáticas Curso Pepe Gallardo Universidad de Málaga. Tema 8. Listas
Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 8. Listas 8.1 Secuencias aritméticas 8.2 Algunas funciones predefinidas 8.3 Listas por comprensión Ejemplo: QuickSort
Más detallesTema 6: Funciones recursivas
Tema 6: Funciones recursivas Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla Tema 6: Funciones
Más detallesAgradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
Más detallesTema 3: Tipos y clases
Tema 3: Tipos y clases Informática (2016 17) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2 / 32 IM Tema 3: Tipos y clases
Más detallesTema 3: Tipos y clases
Tema 3: Tipos y clases Informática (2017 18) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2 / 32 IM Tema 3: Tipos y clases
Más detallesTema 3: Tipos y clases
Tema 3: Tipos y clases Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla Tema 3: Tipos y clases
Más detallesTema 3: Tipos y clases
Tema 3: Tipos y clases Programación declarativa (2010 11) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla Tema 3: Tipos y clases
Más detallesTÍTULO: MATEMÁTICA DISCRETA Y LÓGICA Disponibilidad
TÍTULO: MATEMÁTICA DISCRETA Y LÓGICA Disponibilidad Calculo proposicional 1 Argumentos y proposiciones lógicas 1 Algunos argumentos lógicos importantes 2 Proposiciones 4 Conexiones lógicas 5 Negación (tabla)
Más detallesContenido. Capítulo I Sistemas numéricos 2. Capítulo II Métodos de conteo 40
CONTENIDO v Contenido Contenido de la página Web de apoyo... xi Página Web de apoyo... xvii Prefacio... xix Capítulo I Sistemas numéricos 2 1.1 Introducción... 4 1.2 Sistema decimal... 5 1.3 Sistemas binario,
Más detallesDefiniciones de tipo. Sinónimos de tipo
Capítulo 4. Definiciones de tipo 40 Definiciones de tipo Sinónimos de tipo Un sinónimo de tipo renombra un tipo existente. El nuevo nombre y el antiguo son totalmente intercambiables. type Entero =Integer
Más detallesTema 13: Aplicaciones de programación funcional
Tema 13: Aplicaciones de programación funcional Programación declarativa (2010 11) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de
Más detallesTema 7. El sistema de clases
Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 7. El sistema de clases 7.1 Funciones Sobrecargadas Clases e Instancias 7.2 Algunas Clases
Más detallesPROGRAMACIÓN EN JAVA
1. INTRODUCCIÓN A LA PROGRAMACIÓN 1.1. Datos, algoritmos y programas 1.1.1. Definición de algoritmo 1.1.2. Datos 1.1.3. Características de un programa 1.2. Paradigmas de programación 1.2.1. Programación
Más detallesINDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación
INDICE Prologo XI Capitulo 1. Algoritmos y programas 1.1. Configuraciones de una computadora 1 1.2. Lenguajes de programación 2 1.3. Resolución de problemas 1.3.1. Fase de resolución del problema 3 1.3.1.1.
Más detallesGuía del Curso IFCD052PO PROGRAMACIÓN EN JAVA
Guía del Curso IFCD052PO PROGRAMACIÓN EN JAVA Modalidad de realización del curso: Titulación: Online Diploma acreditativo con las horas del curso OBJETIVOS CONTENIDOS UNIDAD DIDÁCTICA 1. INTRODUCCIÓN A
Más detallesContenido. Prefacio Orígenes de la programación orientada a objetos... 1
Prefacio... xv 1. Orígenes de la programación orientada a objetos... 1 1.1 La crisis del software... 1 1.2 Evolución del software... 3 1.3 Introducción a la programación orientada a procedimientos... 4
Más detallesTema 4: Definición de funciones
Tema 4: Definición de funciones Informática (2010 11) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2 / 30 Tema 4: Definición
Más detallesEl sistema de clases de Haskell. Introducción
Capítulo 5. El sistema de clases de Haskell 56 El sistema de clases de Haskell Introducción Función monomórfica: sólo se puede usar para valores de un tipo concreto not :: Bool Bool not True = False not
Más detallesTema 4: Definición de funciones
Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla Constantes como patrones Variables como
Más detallesTema 6. Definiciones de tipos
Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 6. Definiciones de tipos 6.1 Sinónimos de tipo 6.2 Definiciones de tipos de datos Tipos enumerados
Más detallesTema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN
Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN - Introducción - Sintaxis - Semántica básica - Tipos de datos - Expresiones y enunciados - Procedimientos y ambientes - Tipos abstractos de datos y módulos
Más detallesProgramación Funcional Haskell Clase 22
Programación Funcional Haskell Clase 22 José Raymundo Marcial Romero rmarcial@fi.uaemex.mx BUAP c José Raymundo Marcial Romero. Clase Número 22 p.1/?? Temas de la clase Tipos Numéricos de Haskell Tipos
Más detallesIntroducción a Haskell. El lenguaje Haskell
Capítulo 2. Introducción a Haskell 9 Introducción a Haskell Un ejemplo de fichero Haskell El lenguaje Haskell Haskell es un lenguaje funcional puro, no estricto y fuertemente tipificado. Puro = transparencia
Más detallesANEXO XVII DE LA RESOLUCION N
Hoja 1 de 7 UNIVERSIDAD NACIONAL DE CÓRDOBA Facultad de Ciencias Exactas Físicas y Naturales República Argentina Programa de: Código: Informática Carrera: Materia común Res. Nº Plan: Puntos:3.5 Escuela:
Más detallesPráctica N o 1 - Programación Funcional
Práctica N o 1 - Programación Funcional Para resolver esta práctica, recomendamos usar el Hugs 98, de distribución gratuita, que puede bajarse de http://www.haskell.org/hugs/. Ejercicio 1 Dado el siguiente
Más detallesTema 3. Patrones y Definiciones de Funciones
Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 3. Patrones y Definiciones de Funciones 3.1 Comparación de Patrones Patrones constantes Patrones
Más detallesCURSO DE METODOS NUMERICOS INDICE
CURSO DE METODOS NUMERICOS INDICE PRIMERA PART E: INTRODUCCION AL ANALISIS NUMERICO Y A LA COMPUTACION Capítulo I. Introducción al Análisis Numérico. 1. Algoritmos y diagramas de flujo. pg. 1 2. Origen
Más detallesTema 9: Declaraciones de tipos y clases
Tema 9: Declaraciones de tipos y clases Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla
Más detallesTema 4.- Recursión e iteración
UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER
Más detallesIntroducción a Haskell. Cecilia Manzino
Paradigmas de programación Un paradigma de programación representa un estilo particular o filosofía para la construcción del software. Los más comunes dan lugar a los siguientes tipos de programación:
Más detallesTipos de datos y clases de tipos
Tipos de datos y clases de tipos Taller de Álgebra I Verano 2017 Tipos de datos Tipo de dato Un conjunto de valores a los que se les puede aplicar un conjunto de funciones. Ejemplos 1 Integer = (Z, {+,,,
Más detallesTema 9: Declaraciones de tipos y clases
Tema 9: Declaraciones de tipos y clases Informática (2016 17) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2 / 41 Tema 9:
Más detallesTema 2. Tipos predefinidos
Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 2. Tipos predefinidos 2.1 Tipos simples predefinidos El tipo Bool El tipo Int El tipo Integer
Más detallesParadigma Funcional Caso de estudio: ML. Lenguajes de Programación 2017
Paradigma Funcional Caso de estudio: ML Lenguajes de Programación 2017 Paradigma Funcional FUNCIÓN: Mapeo de un dominio en un rango El mapeo se puede describir por medio de una EXPRESIÓN f(1) = 2 f(2)
Más detallesContenido. Contenidos interactivos... xiii Plataforma de contenidos interactivos... xviii Prefacio... xix. Parte I Fundamentos...
Contenido Contenidos interactivos... xiii Plataforma de contenidos interactivos... xviii Prefacio... xix Parte I Fundamentos... 1 Capítulo I Lógica, conjuntos e inducción... 2 1.1 Introducción... 4 1.2
Más detallesProcesadores de lenguaje Tema 5 Comprobación de tipos
Procesadores de lenguaje Tema 5 Comprobación de tipos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Sistemas de tipos. Expresiones de tipo. Equivalencia de tipos. Sobrecarga,
Más detallesINDICE 1.1. Información y Significado 1.2. Arreglos en C 1.3. Estructura en C 1.4. Clases en C++ 2. La Pila 2.1. Definición y Ejemplos
INDICE Prefacio xiii 1. Introducción a las Estructuras de datos 1 1.1. Información y Significado 1 Enteros binarios y decimales 2 Números reales 4 Cadenas de caracteres 5 Hardware y software 6 Concepto
Más detallesTema 3. Patrones y Definiciones de Funciones
Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 3. Patrones y Definiciones de Funciones 3.1 Comparación de Patrones Patrones constantes Patrones para listas Patrones
Más detallesBachillerato Internacional. Matemáticas Nivel Medio. Programa para el curso 1º ( )
1 Bachillerato Internacional. Matemáticas Nivel Medio. Programa para el curso 1º (2015-2016) Tema 1: NÚMEROS REALES Conjuntos numéricos. Números naturales. Números enteros. Números racionales. Números
Más detallesELEMENTOS DE LA MATEMATICA
ELEMENTOS DE LA MATEMATICA SEMESTRE: Primero CODIGO ANTERIOR: 22G7 CODIGO: 8101 REQUISITOS: No tiene CREDITOS: 6 HORAS DE TEORIA: 4 HORAS DE PRACTICA : 4 TEMA 1: Lógica simbólica. Las conectivas lógicas.
Más detallesÁrboles generales. Un árbol es una estructura no lineal acíclica utilizada para organizar información de forma eficiente. La definición es recursiva:
Capítulo 9. Programación con Árboles 107 Árboles Árboles generales Un árbol es una estructura no lineal acíclica utilizada para organizar información de forma eficiente. La definición es recursiva: Un
Más detalles1.1 Define un operador ( ) que devuelva True si y solo si tan solo uno de sus argumentos es True. Por ejemplo:? (3 > 2) (2 > 5)
1 Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Práctica 1 1.1 Define un operador ( ) que devuelva True si y solo si tan solo uno de sus argumentos es True. Por ejemplo:?
Más detallesLOS CONTENIDOS DE MATEMÁTICAS EN LOS BACHILLERATOS ITALIANOS
LOS CONTENIDOS DE MATEMÁTICAS EN LOS BACHILLERATOS ITALIANOS LOS CONTENIDOS DEL BIENIO (1º Y 2º AÑO) PROGRAMA A (PARA LOS INDERIZZOS CLÁSICO, LINGÜÍSTICO, SOCIO-PSICO-PEDAGÓGICO Y ARTÍSTICO, 4 horas semanales)
Más detallesPlanificaciones Algoritmos y Programación I. Docente responsable: CARDOZO MARTIN MIGUEL. 1 de 8
Planificaciones 9511 - Algoritmos y Programación I Docente responsable: CARDOZO MARTIN MIGUEL 1 de 8 OBJETIVOS Capacitar al alumno en el diseño y programación documentados de algoritmos y en la elección
Más detallesTema 2: Introducción a la programación con Haskell
Tema 2: Introducción a la programación con Haskell Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad
Más detallesAlgoritmos y programas. Algoritmos y Estructuras de Datos I
Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de
Más detallesTipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos
Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos
Más detallesTEMARIO DE PROFESORES DE ENSEÑANZA SECUNDARIA MATEMÁTICAS
HOJA INFORMATIVA A.5.2.33 TEMARIO DE PROFESORES DE ENSEÑANZA SECUNDARIA MATEMÁTICAS Publicado en el B.O.E. de 21 de Septiembre de 1.993 MARZO 1998 MATEMÁTICAS 1. Números naturales. Sistemas de numeración.
Más detallesContenido. 1. Introducción a la programación La secuenciación La selección...55
Contenido - IX Contenido 1. Introducción a la programación...1 1.1 Conceptos generales...3 La computadora... 3 El programa... 6 Estructuras de datos... 6 Operaciones primitivas elementales... 7 Estructuras
Más detallesIntroducción al Lambda Cálculo (C)
Introducción al Lambda Cálculo (C) Francisco Rafael Yépez Pino Programación Declarativa Avanzada Introducción al -Cálculo: 1. δ-reducciones y -reducciones 1.1. Teorías 1.2. Eta-conversión y extensionalidad
Más detallesGuardas y Tipos de datos
Guardas y Tipos de datos Taller de Álgebra I 1er Cuatrimestre 2017 Definiciones de funciones por casos Podemos usar guardas para definir funciones por casos: f (n) = { 1 si n = 0 0 si no f n n == 0 = 1
Más detallesUniversidad Tecnológica Nacional Facultad Regional San Francisco. Tecnicatura Superior en Programación. Matemática
Universidad Tecnológica Nacional Facultad Regional San Francisco Tecnicatura Superior en Programación PLANIFICACIÓN CICLO LECTIVO 2014 ÍNDICE ÍNDICE... 2 PROFESIONAL DOCENTE A CARGO... 3 UBICACIÓN... 4
Más detallesEjercicios de programación funcional con Haskell
Ejercicios de programación funcional con Haskell José A. Alonso Jiménez Grupo de Lógica Computacional Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Sevilla, 8 de
Más detallesExpresión decimal. Aproximación y estimación. Notación científica. Polinomios. Divisibilidad de polinomios. Regla de Ruffini.
Otras páginas Matemáticas 5º Matemáticas I. Bloque I: ARITMÉTICA Y ÁLGEBRA Los números reales Los números reales, concepto y características. Estructura algebraica, orden, representación en la recta real
Más detallesÍNDICE SISTEMÁTICO. Sumario... 5 Prólogo Unidad didáctica 1. Conjuntos Objetivos de la Unidad... 13
ÍNDICE SISTEMÁTICO PÁGINA Sumario... 5 Prólogo... 7 Unidad didáctica 1. Conjuntos... 11 Objetivos de la Unidad... 13 1. Introducción... 14 2. Definiciones... 14 2.1. Conjunto... 14 2.2. Conjuntos bien
Más detallesDATOS DE IDENTIFICACIÓN DEL CURSO Ciencias Computacionales Estructuras y algoritmos
DEPARTAMENTO: ACADEMIA A LA QUE PERTENECE: NOMBRE DE LA MATERIA: DATOS DE IDENTIFICACIÓN DEL CURSO Ciencias Computacionales Estructuras y algoritmos Estructuras de Datos CLAVE DE LA MATERIA: CC202 CARÁCTER
Más detallesAplicación de la Inducción Matemática Programación Funcional. Julio Ariel Hurtado Alegría Departamento de Sistemas Universidad del Cauca
Aplicación de la Inducción Matemática Programación Funcional Julio Ariel Hurtado Alegría Departamento de Sistemas Universidad del Cauca Motivación Programación Imperativa Declarativa Procedimental Ejemplo:
Más detallesGUÍA DE EXAMEN DE NUEVO INGRESO. Maestría en Optimización de Procesos
GUÍA DE EXAMEN DE NUEVO INGRESO Maestría en Optimización de Procesos ANTECEDENTES La presente guía de estudio tiene como objeto establecer los temas que serán evaluados en el proceso de selección de estudiantes
Más detallesMETODOLOGÍA DE LA PROGRAMACIÓN. APLICACIONES EN BASIC, COBOL Y PASCAL ÍNDICE
PRÓLOGO CAPÍTULO 1. LA PROGRAMACIÓN DE COMPUTADORES Fases del diseño y puesta a punto de un programa Diseño del programa Puesta a punto del programa Características de los programas Legibilidad Portabilidad
Más detallesComponentes Básicos. InCo. InCo Componentes Básicos 1 / 28
Componentes Básicos InCo InCo Componentes Básicos 1 / 28 Modelo de Computación Vemos al computador como un procesador de datos. +------------+ Entrada ===> Computador ===> Salida +------------+ InCo Componentes
Más detallesUNIVERSIDAD AUTONOMA DE QUERETARO Facultad de Informática
PROGRAMACIÓN ORIENTADA A OBJETOS(1602). ÁREA DE CONOCIMIENTO: PROGRAMACIÓN E INGENIERÍA DE SOFTWARE CRÉDITOS: 7 HORAS TEÓRICAS ASIGNADAS A LA SEMANA: 2 HORAS PRÁCTICAS ASIGNADAS A LA SEMANA: 2 PROGRAMAS
Más detallesTema Árboles binarios fmap para árboles binarios Plegado de árboles binarios
Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 9. Árboles 9.1 Árboles binarios fmap para árboles binarios Plegado de árboles binarios 9.2
Más detallesPrólogo del autor... xv. Agradecimientos... xvii. Parte 1. Métodos anónimos... 3
Contenido Prólogo del autor... xv Agradecimientos... xvii Introducción... xix Parte 1 Conceptos preliminares Métodos anónimos... 3 1.1. Breve repaso a los delegados y eventos en C# 1... 3 1.2. Los métodos
Más detallesTEMARIO PRESENTACIÓN 7 MÓDULO I 17 EXPRESIONES ALGEBRAICAS 19
TEMARIO PRESENTACIÓN 7 MÓDULO I 17 EXPRESIONES ALGEBRAICAS 19 Introducción 19 Lenguaje común y lenguaje algebraico 22 Actividad 1 (Lenguaje común y lenguaje algebraico) 23 Actividad 2 (Lenguaje común y
Más detallesTEMARIO PRUEBA DE SÍNTESIS MATEMÁTICA NIVEL SÉPTIMO BÁSICO
NIVEL SÉPTIMO BÁSICO Operatoria números naturales Operatoria números decimales Clasificación de números decimales Transformación de decimal a fracción Orden de números enteros Ubicación de números enteros
Más detallesListas y Recursión. Taller de Álgebra I. Primer Cuatrimestre de 2015
Listas y Recursión Taller de Álgebra I Primer Cuatrimestre de 2015 Un nuevo tipo: Listas Tipo Lista Las listas pueden contener elementos de cualquier tipo (incluso listas) [1] :: [Integer] [1, 2] :: [Integer]
Más detalles18 Experimentos aleatorios. Sucesos y espacio muestral. Frecuencia y probabilidad de un suceso.
PRIMER CURSO DE E.S.O Criterios de calificación: 80% exámenes, 10% actividades, 10% actitud y trabajo 1 Números naturales. 2 Potencias de exponente natural. Raíces cuadradas exactas. 3 Divisibilidad. Concepto
Más detallesTema 5: Definiciones de listas por comprensión
Tema 5: Definiciones de listas por comprensión Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla
Más detallesCARRERA DE CIECNIAS DE LA COMPUTACIÓN PROGRAMA DE ESTUDIO. Teóricos: 2 Práctico: 1 Total 3
ARQUITECTURA DE COMPUTADORES CÓDIGO Y CCO301 Total 3 Las matemática aplicada a la computación es el modelado, simulación y optimización de procesos o fenómenos, para procesos complejos, costosos, riesgosos,
Más detallesTema 5: Definiciones de listas por comprensión
Tema 5: Definiciones de listas por comprensión Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla
Más detallesProgramación en Lenguaje C
Lenguaje de programación C Programación en Lenguaje C Introducción El Lenguaje de programación C fue implantado por primera vez en los años 70 por Dennis Ritchie para una computadora DEC PDP-11 corriendo
Más detallesTema 12: Analizadores sintácticos funcionales
Tema 12: Analizadores sintácticos funcionales Informática (2014 15) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2 / 37
Más detallesProgramación funcional
Programación funcional Inferencia de tipos manual para programas Haskell J. Sánchez Hernández Enero de 2007 El sistema de tipos de Haskell Es una variante del propuesto R. Milner en 1978 (con antecedentes
Más detallesIntroducción rápida a la programación (estructurada ) con C++
Introducción rápida a la programación (estructurada ) con C++ A B No A? Si B A Los Bloques pueden ser una línea de código o un modulo (función o subrutina) que pueden estar contenido en otro archivo de
Más detallesIntroducción a la Programación Genérica
Introducción a la Programación Genérica Alberto Pardo Instituto de Computación Facultad de Ingeniería Universidad de la República http://www.fing.edu.uy/inco/cursos/proggen Objetivo del curso Introducción
Más detallesTema 3: Características de la programación funcional. Sesión 5: El paradigma funcional (1)
Tema 3: Características de la programación funcional Sesión 5: El paradigma funcional (1) Referencias Capítulo 1.1.5 SICP: [[http://mitpress.mit.edu/sicp/full-text/book/book-z- H-10.html#%_sec_1.1.5][The
Más detallesConstrucciones del Lenguaje Java
Construcciones del Lenguaje Java Autor: Juan Alberto López Cavallotti Versión de Java: 5 / 6 Comentarios Comentario de Línea Comentario Multilínea //Esto es un comentario. /* Esto comenta varias lineas.
Más detallesTema 1: Programación Funcional
Tema 1: Programación Funcional A. Chávez-González 1 A. Riscos-Núñez 1 F. Sancho-Caparrini 1 1 Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla http://www.cs.us.es/cursos/lp/
Más detallesLenguajes de Programación Programación funcional
Lenguajes de Programación Programación funcional Roberto Bonvallet Departamento de Informática Universidad Técnica Federico Santa María Concepto de función En el paradigma imperativo: Una función es una
Más detallesFundamentos de programación JAVA
Pág. N. 1 Fundamentos de programación JAVA Familia: Editorial: Autor: Computación e informática Macro Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-238-7 N. de páginas: 296 Edición: 2. a 2014 Medida:
Más detallesPROGRESION 1er L 2017
PROGRESION 1er L 2017 UNIDAD: NUMERACION SISTEMAS NUMÉRICOS. NÚMEROS NATURALES (N) Y NÚMEROS ENTEROS (Z) OPERATORIA EN Z MULTIPLOS Y DIVISORES NÚMEROS PRIMOS, COMPUESTOS Y DESCOMPOSICIÓN EN FACTORES TEOREMA
Más detallesProgramación Inicial. Requisitos previos. Objetivos. Próximos Inicios. Modalidad a Distancia. Costo y formas de pago. Resumen de Contenidos
Programación Inicial con Java y Oracle Requisitos previos Para realizar esta capacitación el único requisito previo es contar con un amplio dominio del manejo del entorno Windows, además de utilizar programas
Más detallesSISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos
TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus
Más detallesNúmeros enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos.
Universidad Rafael Urdaneta Escuela de Ingeniería de Computación Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos. Asignación
Más detallesMateria: Matemáticas Curso: Noveno de Básica BREVE DESCRIPCIÓN DE LA CLASE:
Materia: Matemáticas Curso: Noveno de Básica BREVE DESCRIPCIÓN DE LA CLASE: Durante este curso se contribuirá al desarrollo del pensamiento lógico, reflexivo y crítico de los estudiantes, es por ello,
Más detallesTutoría Completa - Curso de Matemática para 1, 2 y 3 Básico
Tutoría Completa - Curso de Matemática para 1, 2 y 3 Básico Contenido 1 Básico 1. Proposiciones y cuantificadores a. Proposiciones b. Negación c. Conjunción d. Disyunción e. Condicional f. Doble condicional
Más detallesContenido. Prólogo... Capítulo 1. Algoritmos y estructuras de datos... 1. Introducción... 24
Contenido Prólogo... vii Capítulo 1. Algoritmos y estructuras de datos... 1 Introducción... 2 1.1. Tipos de datos... 2 1.1.1. Tipos primitivos de datos... 3 1.1.2. Tipos de datos compuestos y agregados...
Más detallesESTRUCTURAS DE DATOS Y ALGORITMOS
ESTRUCTURAS DE DATOS Y ALGORITMOS CURSO 2009 PRÁCTICO 8 Nota: al igual que en los prácticos 6 y 7, en los problemas que siguen se usarán los tipos lista y árbol binario, como tipos abstractos, cada uno
Más detallesPrograma Oficial de Asignatura. Ficha Técnica. Presentación. Competencias y/o resultados del aprendizaje. Contenidos Didácticos
Ficha Técnica Titulación: Grado en Ingeniería Informática Plan BOE: BOE número 108 de 6 de mayo de 2015 Asignatura: Módulo: Programación y Estructura de Datos Curso: 1º Créditos ECTS: 6 Tipo de asignatura:
Más detallesTema 1. Tema 2. Informática Haskell Matemáticas Curso Pepe Gallardo Universidad de Málaga
Informática Pepe Gallardo Universidad de Málaga 1 Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 1 1.1 Considérense las siguientes definiciones de funciones: inc
Más detallesFundamentos de Programación Visual Basic
Pág. N. 1 Fundamentos de Programación Visual Basic Familia: Editorial: Tecnología de información y computación Macro Autor: Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-236-3 N. de páginas: 280
Más detallesPrograma Oficial de Asignatura. Ficha Técnica. Presentación. Competencias y/o resultados del aprendizaje. Fundamentos de Programación
Ficha Técnica Titulación: Grado en Ingeniería de Organización Industrial Plan BOE: BOE número 75 de 28 de marzo de 2012 Asignatura: Módulo: TICs (Tecnologías de la Información y las Comunicaciones) Curso:
Más detallesDivisibilidad y congruencia
Divisibilidad y congruencia Taller de Álgebra I Verano 2017 Algoritmo de la división Teorema Dados a, d Z, d 0, existen únicos q, r Z tales que a = qd + r, 0 r < d. Idea de la demostración: (caso a 0,
Más detallesPROGRAMACIÓN ORIENTADA POR OBJETOS EN JAVA
PROGRAMACIÓN ORIENTADA POR OBJETOS EN JAVA Introducción El paradigma de Programación Orientada a Objetos ha estado vigente desde hace muchos años en el mundo del software. A través de los años este paradigma
Más detallesAl final, qué sabré hacer?... Itinerario del proceso de aprendizaje... Capítulo 1. Conceptos generales a modo de introducción (CG)
Contenido presentación... Al final, qué sabré hacer?... Itinerario del proceso de aprendizaje... xvii xxiii xxv Capítulo 1. Conceptos generales a modo de introducción (CG) OBJETIVO DIDÁCTICO... 1 1.1.
Más detallesn! = 1 2 n 0! = 1 (n+1)! = (n + 1) n!
Capítulo 3 Recursión La recursión es un estilo autoreferencial de definición usado tanto en matemática como en informática. Es una herramienta de programación fundamental, particularmente importante para
Más detallesMATEMÁTICAS. PRIMERO DE E.S.O.
MATEMÁTICAS. PRIMERO DE E.S.O. Unidad 1: Números naturales. Potencias y raíces. Números naturales. Representación geométrica. Operaciones. Sistema de numeración decimal. Operaciones combinadas. Jerarquía.
Más detallesProgramación 1 Tema 3. Información, datos, operaciones y expresiones
Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información
Más detallesProgramación Funcional Haskell Clase 19
Programación Funcional Haskell Clase 19 José Raymundo Marcial Romero rmarcial@fi.uaemex.mx BUAP c José Raymundo Marcial Romero. Clase Número 19 p.1/23 Temas de la clase Lenguajes Funcionales Haskell y
Más detalles