Lógica y Programación
|
|
|
- Purificación Quintana Duarte
- hace 9 años
- Vistas:
Transcripción
1 Lógica y Programación Programación funcional con Haskell Antonia M. Chávez, Carmen Graciani, Agustín Riscos Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla
2 Programación funcional La programación funcional es un estilo de programación cuyo método básico de computación es la aplicación de funciones a sus argumentos. GHC (Glasgow Haskell Compiler) es el intérprete de Haskell que usaremos en el curso.
3 Definición de funciones Una función es una aplicación que toma uno o más argumentos y devuelve un valor. Es una correspondencia en la que cada elemento del dominio está relacionado con un único elemento de la imagen. Ejemplo de definición de función en Haskell: doble x = x * x Notación matemática: f(a, b) + cd Notación Haskell: f a b + c * d Los paréntesis se utilizan para agrupar expresiones: Notación matemática: f(x, g(y)) Notación Haskell: f x (g y)
4 Definición de funciones Las definiciones se incluyen en ficheros de texto. Se acostumbra a identificar dichos ficheros mediante el sufijo.hs Los nombres de funciones tienen que empezar por una letra en minúscula. En Haskell la disposición del texto del programa (el sangrado) delimita las definiciones mediante la siguiente regla: Una definición acaba con el primer trozo de código con un margen izquierdo menor o igual que el del comienzo de la definición actual. Un comentario simple comienza con -- y se extiende hasta el final de la ĺınea. Un comentario anidado comienza con {- y termina en -}
5 Evaluación de expresiones Haskell utiliza evaluación perezosa o mediante paso de parámetros por nombre usando punteros para compartir valores de expresiones. cuadrado x = x * x unos = 1:unos cuadrado (2+1) ==> [def. cuadrado] x*x siendo x = (2+1) ==> [def. (+)] x*x siendo x = 3 ==> [sustitución] 3*3 ==> [def. (*)] 9 head unos head (1:unos) 1 ==> [def. unos] ==> [def. head]
6 Tipos y clases Un tipo es una colección de valores relacionados. Haskell es un lenguaje de tipos seguros: la inferencia de tipo precede a la evaluación. Una clase es una colección de tipos junto con ciertas operaciones llamadas métodos. Una función es polimórfica si su signatura contiene una variable de tipo Una función está sobrecargada si su signatura contiene una restricción de clase
7 El tipo Bool Constructores: True, False Funciones y operadores: (&&) :: Bool -> Bool -> Bool ( ) :: Bool -> Bool -> Bool not :: Bool -> Bool otherwise :: Bool
8 El tipo Int Números enteros de precisión limitada en el intervalo [ 2 29, ] Funciones y operadores: (+)(-)(*) :: Int -> Int -> Int (^) :: Int -> Int -> Int div, mod :: Int -> Int -> Int abs :: Int -> Int signum :: Int -> Int negate :: Int -> Int even, odd :: Int -> Bool
9 El tipo Float Números reales. Disponen de una cantidad fija de memoria. Funciones y operadores: (+)(-)(*)(/)(**) :: Float -> Float -> Float (^) :: Float -> Int -> Float signum :: Float -> Float (-1.0, 0.0, 1.0) sin, asin, cos, acos, tan, atan :: Float -> Float atan2 :: Float -> Float -> Float negate, abs, sqrt, log, exp :: Float -> Float pi :: Float trucate, round, floor, ceiling :: Float -> Float fromint :: Int -> Float frominteger :: Integer -> Float
10 El tipo Integer/Double Enteros/reales de precisión arbitraria Mismas operaciones que para el tipo Int/Float
11 El tipo Char Caracteres: Se denotan entre comillas simples. Los caracteres especiales van precedidos por \n Salto de ĺınea \ Comilla doble \t Tabulador \ El carácter \ \ Comilla simple Funciones ord :: Char -> Int chr :: Int -> Char isupper, islower, isdigit, isalfa :: Char -> Bool toupper, tolower :: Char -> Char
12 Tuplas Dato compuesto donde cada componente puede ser de un tipo diferente Si v1, v2,..., vn son valores con tipo t1, t2,..., tn (respectivamente), entonces (v1,v2,...,vn) es una tupla con tipo (t1,t2,...,tn)
13 Listas Colección de cero o más elementos todos del mismo tipo. [] lista vacía Si v1, v2,..., vn son valores con tipo t entonces v1:(v2:(...:(vn:[])...)) es una lista con tipo [t] La lista anterior también puede expresarse como: [v1,v2,...,vn] El tipo String es equivalente al tipo [Char] La lista de caracteres [ a1, a2,..., am ] también puede expresarse como: "a1a2...am"
14 Listas por comprensión Definición de conjuntos en Matemáticas: {x 2 : x {1, 2, 3}} Definición en Haskell: [x^2 x <- [1,2,3]] La expresión x <- [1,2,3] se denomina generador [(x,y) x <- [1,2,3], y <- [4,5]] ==> [(1,4),(1,5),(2,4),(2,5),(3,4),(3,5)] Las listas por comprensión pueden tener guardas para restringir los valores. [x x <- [1..10], even x] ==> [2,4,6,8,10]
15 La clase Eq Contiene los tipos cuyos valores con comparables por igualdad: Bool, Char, String, Int, Integer, Float y Double (y composiciones de los mismos en listas o tuplas) Métodos: (==) :: a -> a -> Bool (/=) :: a -> a -> Bool
16 La clase Ord Es la subclase de Eq de tipos cuyos valores están ordenados: Bool, Char, String, Int, Integer, Float y Double (y composiciones de los mismos en listas o tuplas) Métodos: (<), (<=), (>), (>=) :: a -> a -> Bool min, max :: a -> a -> a
17 La clase Show Contiene los tipos cuyos valores se pueden convertir en cadenas de caracteres: Bool, Char, String, Int, Integer, Float y Double (y composiciones de los mismos en listas o tuplas) Método: show :: a -> String
18 La clase Read Contiene los tipos cuyos valores se pueden obtener a partir de cadenas de caracteres: Bool, Char, String, Int, Integer, Float y Double (y composiciones de los mismos en listas o tuplas) Método: read :: String -> a
19 La clase Num Es la subclase de Eq y Ord de tipos cuyos valores son números: Int, Integer, Float y Double Métodos: (+), (*), (-) :: a -> a -> a negate, abs, signum :: a -> a
20 La clase Integral Es la subclase de Num cuyos valores son números enteros: Int e Integer Métodos: div :: a -> a -> a mod :: a -> a -> a
21 La clase Fractional Es la subclase de Num cuyos valores son números no enteros: Float y Double Métodos: (/) :: a -> a -> a recip :: a -> a
22 Declaraciones de tipo Se puede definir un nuevo nombre para un tipo existente mediante una declaración de tipo. El nombre del tipo tiene que empezar por mayúscula. type String = [Char] Las declaraciones de tipo pueden tener parámetros. type Par a = (a, a) Las declaraciones de tipo no pueden ser recursivas.
23 Definiciones de tipos Pueden definirse nuevos tipos data Bool = True False El primer elemento de los distintos valores se llama constructor y tiene que empezar por mayúscula. Los constructores pueden tener parámetros y los tipos definidos también. data Figura = Circulo Float Rectangulo Float Float data Maybe a = Nothing Just a Pueden ser recursivos data Natural = Cero Sucesor Natural
24 La clase Fractional Puede declarse como instancia de clases data Bool = False True deriving (Eq, Ord, Read, Show) data Lista a = Vacia Incluir a (Lista a) instance (Show a) => Show (Lista a) where show Vacia = [] show (Incluir x xs) = "(" ++ show x ++ ":" ++ show xs ++ ")" *Main> Incluir 2 (Incluir 3 Vacia) (2:(3:[]))
25 Funciones Si t1, t2,..., t(n+1) son tipos, entonces t1->t2->...->t(n+1) es el tipo de las funciones con n argumentos Las funciones pueden construirse sin nombrarlas mediante las expresiones lambda. Los operadores son funciones binarias cuyo nombre empieza por un símbolo y que se escriben de forma infija. Pueden convertirse en funciones prefijas escribiéndolos entre paréntesis. Las funciones binarias pueden convertirse en operadores escribiéndolas entre acentos franceses.
26 Funciones Se pueden expresar funciones que reciben y devuelven funciones: componer :: (a -> b) -> (b -> c) -> a -> c componer f g x = g (f x) Las funciones toman sus argumentos de uno en uno (currificación) y pueden utilizarse parcialmente. empareja :: a -> b -> (a,b) empareja x y = (x,y) primeraa :: b -> (Char,b) primeraa = empareja A Las parcializaciones de los operadores se denominan secciones.
27 Condicionales (map f xs) es la lista obtenida aplicando f a cada elemento de xs (filter p xs) es la lista de los elementos de xs que cumplen la propiedad p (all p xs) se verifica si todos los elementos de xs cumplen la propiedad p. (any p xs) se verifica si algún elemento de xs cumple la propiedad p. (takewhile p xs) es la lista de los elementos iniciales de xs que verifican el predicado p (dropwhile p xs) es la lista xs sin los elementos iniciales que verifican el predicado p
28 Condicionales if <condición> then <consecuencia> else <alternativa> El tipo de la <condición> debe ser Bool La <consecuencia> y la <alternativa> han de ser del tipo de la imagen de la función. abs :: Int -> Int abs n = if n >= 0 then n else (-n) Ecuaciones guardadas: abs :: Int -> Int abs n n >= 0 = n otherwise = (-n)
29 Equiparación de patrones Constantes Variables anónimas: Tuplas Listas Enteros: el patrón n+<k> sólo se equipara con números mayores o iguales que <k>.
30 Esquemas básicos de recursión sobre listas Plegado por la derecha: foldr f [] = v f (x:xs) = op x (f xs) f = foldr op v Plegado por la izquierda: foldl f = fa v where fa ac [] = ac fa ac (x:xs) = fa (op ac x) xs f = foldl op v
Tema 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
Tema 2: Introducción a Haskell
El Lenguaje Haskell Tema 2: Introducción a Haskell 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
Tema 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
Tema 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
Tema 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
Tema 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
El 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
Tema 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
Tema 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
Introducció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
Tema II: Introducción al Lenguaje Funcional
Tema II: Introducción al Lenguaje Funcional Características de Haskell Lenguaje funcional de o. superior fuertemente tipificado. Clasifica los entes de un programa en: objetos (constantes y funciones)
Tema 8: Funciones de orden superior
Tema 8: Funciones de orden superior 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
Tema 8: Funciones de orden superior
Tema 8: Funciones de orden superior 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 2 /
Tema 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
Tipos en Haskell. Cecilia Manzino
Tipos Tipo: conjunto de valores asociados a operaciones. Ejemplos: enteros, caracteres, booleanos, funciones de enteros a enteros. Sirven para: detectar errores antes de la evaluación especificar programas
Introducció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:
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
Tema 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
Laboratorio Análisis Lógico Práctica 2: Tipos de datos en Haskell
Laboratorio Análisis Lógico Práctica 2: Tipos de datos en Haskell Pedro A. Góngora Luna 1 1. Operadores La figura 1 muestra la lista de algunos de los operadores básicos definidos en el preludio. La lista
Informá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
1.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:?
Informática de 1 o de Matemáticas. Ejercicios de Introducción a Haskell. Ejercicio 1 Consideremos la siguiente definición:
Ejercicios de Introducción a Haskell Informática de 1 o de Matemáticas Ejercicio 1 Consideremos la siguiente definición: doble x = x + x El valor de doble(doble 3) se puede calcular usando distintos métodos
Tipos 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
Práctica 1. Programación Funcional Introducción a Helium
Práctica 1. Programación Funcional Introducción a Helium Who? Lenguajes y Paradigmas de Programación Objetivo de la práctica Presentar las facilidades básicas del entorno de programación Helium Presentar
Tema 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
Tema 2: Introducción a la programación con Haskell
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 2. 4. 2 / 26 El sistema GHC El sistema GHC
Para entender la recursividad primero tenemos que entender la recursividad
Para entender la recursividad primero tenemos que entender la recursividad Funcional Clase 1 Matias Reparaz, Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 20 de Septiembre
data Tree a = Tip Node a (Tree a) (Tree a) deriving Show
Preguntas seleccionadas de pruebas de evaluación Pregunta 1 Dadas las siguientes definiciones: data Tree a = Tip Node a (Tree a) (Tree a) deriving Show cambiar :: [Int] -> Tree [Int] -> Tree [Int] cambiar
Introducción a OCaml. October 19, 2015
Introducción a OCaml October 19, 2015 OCaml: introducción Es un dialecto de ML. Lenguaje de programación funcional. Fuertemente tipado. Con inferencia de tipos. Polimórfico. [Página oficial: http://www.ocaml.org/
UNIDAD I. ALGORITMOS
UNIDAD I. ALGORITMOS 1.1 Definición Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico. 1.2 Tipos Cualitativos: Son aquellos
Programación Funcional Haskell Clase 19
Programación Funcional Haskell Clase 19 José Raymundo Marcial Romero [email protected] BUAP c José Raymundo Marcial Romero. Clase Número 19 p.1/23 Temas de la clase Lenguajes Funcionales Haskell y
Programación Declarativa Haskell Informática Sistemas Curso Pepe Gallardo Universidad de Málaga
Programación Declarativa Haskell Informática Sistemas Curso 2008-2009 Pepe Gallardo Universidad de Málaga Tema 1 1.1 Considérense las siguientes definiciones de funciones: inc :: Float Float inc x = x
Temas de Programación funcional (curso )
1 Temas de Programación funcional (curso 2017 18) José A. Alonso Jiménez Grupo de Lógica Computacional Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Sevilla, 5 de
Temas de Programación funcional (curso )
1 Temas de Programación funcional (curso 2018 19) José A. Alonso Jiménez Grupo de Lógica Computacional Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Sevilla, 12 de
Tipos de datos algebraicos
Tipos de datos algebraicos Taller de Álgebra I Segundo cuatrimestre de 2013 Programación funcional Recordemos que un tipo de datos es un conjunto dotado con una serie de operaciones sobre los elementos
Programación Funcional
Programación Funcional 2 Tabla de Contenidos 0.1. Evolución y Conceptos básicos................... 4 0.2. Definición de funciones........................ 4 0.3. Sistema de Tipos...........................
UNIDAD 2: INTRODUCCIÓN AL LENGUAJE DE PROGRAMACiÓN R
UNIDAD 2: INTRODUCCIÓN AL LENGUAJE DE PROGRAMACiÓN R Técnicas Inteligentes en Bioinformática Máster en Lógica, Computación e Inteligencia Artificial Dpto. Ciencias de la Computación e Inteligencia Artificial
Ejercicios 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
Introducció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
El lenguaje Haskell 98
El lenguaje Haskell 98 Un lenguaje perezoso completamente Curry con sobrecarga. Juan Pedro Villa Introducción Las razones agudas son ronquidos para los oídos tontos. William
Expresión, Operador, Operando, Asignación, Prioridad
4. EXPRESIONES Y OPERADORES Conceptos: Resumen: Expresión, Operador, Operando, Asignación, Prioridad En este tema se presentan los siguientes elementos de la programación: las expresiones y los operadores.
Metodologías de Programación II Introducción a OCaml
Metodologías de Programación II Introducción a OCaml Dr. Alejandro Guerra-Hernández Departamento de Inteligencia Artificial Facultad de Física e Inteligencia Artificial [email protected] http://www.uv.mx/aguerra
Introducción a la programación. Cecilia Manzino
Paradigmas Un paradigma es un modelo o patrón en cualquier disciplina científica. Un paradigma de programación representa un estilo de programación en cual se escriben soluciones a problemas en términos
Tema 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
ALPII Práctica 3. Bernardo García Fuentes
ALPII Práctica 3 Bernardo García Fuentes 1 Ej. 1................................................................................................. modulus :: [Float] -> Float modulus = sqrt.sum.map square
Tema 3: Conjuntos y Funciones
Tema 3: Conjuntos y Funciones Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Lógica y Computabilidad Curso 2008 09 LC, 2008 09 Conjuntos y Funciones 3.1 Conjuntos Escribimos
Programación Funcional Haskell Clase 21
Programación Funcional Haskell Clase 21 José Raymundo Marcial Romero [email protected] BUAP c José Raymundo Marcial Romero. Clase Número 21 p.1/12 Temas de la clase Clase Anterior En Haskell cada expresión
2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS
2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS 2.1 Tipos De Datos Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como b, un valor entero tal como
Tema 23: Técnicas de diseño descendente de algoritmos
Tema 23: Técnicas de diseño descendente de algoritmos 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
Programació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
Programación Funcional en Haskell
Programación Funcional en Haskell Paradigmas de Lenguajes de Programación 1 cuatrimestre 2006 1. Expresiones, valores y tipos Un programa en lenguaje funcional consiste en definir expresiones que computan
GUÍA BÁSICA DE SCHEME v.4
Esta guía básica pretende ser una introducción elemental al lenguaje de programación Scheme. Se presenta como una guía de comienzo rápido de tal forma que permita conocer de una forma muy esquemática los
Prá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
Tutorial Haskell David Julián Guzmán Cárdenas Cristian Alexanther Rojas Cárdenas Luis Ernesto Gil Castellanos
Tutorial Haskell David Julián Guzmán Cárdenas Cristian Alexanther Rojas Cárdenas Luis Ernesto Gil Castellanos Agenda 1. 2. 3. 4. 5. 6. Introducción Aspectos básicos del lenguaje Tipos y clases de tipos
ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS Tipos de datos Expresiones Operadores y operandos Identificadores como localidades de memoria
ENIDADES PRIMIIVAS PARA EL DESARROLLO DE ALGORIMOS ipos de datos Expresiones Operadores y operandos Identificadores como localidades de memoria ipos De Datos odos los datos tienen un tipo asociado con
Programación declarativa ( )
1 / 132 Programación declarativa (2008 09) Tema 3: Estructuras de datos José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2 /
Tema 21: Algoritmos de exploración de grafos
Tema 21: Algoritmos de exploración de grafos Informática (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 21:
Tema 2: Introducción a la programación con Haskell
Tema 2: Introducción a la programación con Haskell Informática (2015 16) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2
Tema 3. Tipos de datos simples
Tema 3. Tipos de datos simples Contenido del tema: Concepto de tipo. Tipos simples. Operadores. Expresiones. Semántica. Tipos y expresiones en lenguaje C++ Francisco J. Veredas Dpto. Lenguajes y Ciencias
Tema Á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
Conjuntos y relaciones
Conjuntos y relaciones Introducción Propiedades de las relaciones Sobre un conjunto Reflexivas Simétricas y transitivas Cerradura Relaciones de equivalencia Órdenes parciales Diagramas de Hasse Introducción
Á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
Tema 2. Funciones Lógicas. Algebra de Conmutación. Representación de circuitos digitales. Minimización de funciones lógicas.
Tema 2. Funciones Lógicas Algebra de Conmutación. Representación de circuitos digitales. Minimización de funciones lógicas. Álgebra de conmutación Algebra de Conmutación: Postulados y Teoremas. Representación
Programación Funcional
Alberto Pardo Marcos Viera Instituto de Computación, Facultad de Ingeniería Universidad de la República, Uruguay Operaciones sobre listas Listas El tipo de las listas es uno de los más usados en PF Su
Tema 3.- Predicados y sentencias condicionales
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
TEORÍA DE CONJUNTOS A ={ 1, 2, 3, 4, 5, 6 }
TEORÍA DE CONJUNTOS CONJUNTOS Y TÉCNICAS DE CONTEO DEFINICIÓN Y NOTACIÓN DE CONJUNTOS El término conjunto juega un papel fundamental en el desarrollo de las matemáticas modernas; Además de proporcionar
Tema 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
Isabelle como un lenguaje funcional
Capítulo 1 Isabelle como un lenguaje funcional 1.1 Introducción Nota 1.1.1. Esta notas son una introducción a la demostración asistida utilizando el sistema Isabelle/HOL/Isar. La versión de Isabelle utilizada
Listas 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]
Datos y tipos de datos
Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato
Tema 10: Evaluación perezosa
Tema 10: Evaluación perezosa 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 10: Evaluación
Ejercicios 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
Tema 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
Lenguajes de Inteligencia Artificial Segundo curso. Primer cuatrimestre
Lenguajes de Inteligencia Artificial Segundo curso. Primer cuatrimestre Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas Escuela Politécnica Superior Universidad
Tema 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
Proyecto Clases de Tipos: Polinomios
Proyecto Clases de Tipos: Polinomios Preparación Bajar el archivo pre-llenado: Poly.hs. Qué es un número? Parece una pregunta profunda y filosófica, pero el sistema de tipos de Haskell nos da una respuesta
3. Tipos primitivos de dato
Programación orientada a objetos con Java 31 3. Tipos primitivos de dato Objetivos: a) Describir los tipos de datos primitivos (numéricos, booleano y de tipo carácter) en el lenguaje de programación Java
