Tema 2: Introducción a Haskell
|
|
- Gerardo Quiroga Segura
- hace 5 años
- Vistas:
Transcripción
1 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 Lógica y Programación, 2006/07
2 Índice El Lenguaje Haskell 1 El lenguaje Haskell 2 simples predefinidos 3 predefinidos 4 5 predefinidos su definición Prioridad y Asociatividad de los operadores 6 Patrones y otros tipos de Expresiones
3 El Lenguaje Haskell Características Haskell es un lenguaje funcional puro, no estricto y fuertemente tipificado. Puro: Transparencia referencial. Una expresión denota siempre el mismo valor, en cualquier punto del programa en que aparezca. Razonamiento ecuacional utilizado en matemáticas. No estricto: orden no aplicativo. Evaluación perezosa: Normalizante Trabajo mínimo Eficiente Trabajo con estructuras de datos infinitas Tipificación fuerte: elementos clasificados en categorías. Sistema de tipos estático: comprobación en la compilación Sistema de tipos polimórfico: más flexible Permite la sobrecarga: el mismo nombre Son aconsejables las anotaciones de tipo en los programas
4 El Lenguaje Haskell Un programa Haskell consiste en una o varias definiciones de funciones Ejemplo: Declaración: tipo Definición: método de cómputo -- Un ejemplo de fichero Haskell -- Calcula el siguiente entero al argumento sucesor :: Integer -> Integer sucesor x = x Calcula la suma de los cuadrados de sus argumentos sumacuadrados :: Integer -> Integer -> Integer sumacuadrados x y = x * x + y * y
5 Índice El Lenguaje Haskell 1 El lenguaje Haskell 2 simples predefinidos 3 predefinidos 4 5 predefinidos su definición Prioridad y Asociatividad de los operadores 6 Patrones y otros tipos de Expresiones
6 El tipo Bool El Lenguaje Haskell Expresiones lógicas cuyo resultado puede ser verdadero o falso. Constructores: True, False Funciones y operadores: (&&) :: Bool -> Bool -> Bool ( ) :: Bool -> Bool -> Bool not :: Bool -> Bool otherwise :: Bool
7 El tipo Int El Lenguaje Haskell 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 Ejemplo: Podemos definir otras funciones a partir de ellas maximo :: Int -> Int -> Int maximo x y = div ((x + y) + abs(x - y)) 2
8 El Lenguaje Haskell El tipo Integer Los valores son enteros de precisión ilimitada que se usan cuando los números tratados se salen del rango de los valores del tipo Int El cálculo es menos eficiente Las operaciones disponibles son las mismas que para el tipo de datos Int
9 El tipo Float El Lenguaje Haskell Números reales. Notación: 1.35, , 1.0 ó 1 1.5e7, 1.5e - 17 Funciones y operadores: (+)(-)(*)(/) :: Float -> Float -> Float ( ) :: Float -> Int -> Float (**) :: Float -> Float -> Float abs :: Float -> Float signum :: Float -> Float (-1.0, 0.0, 1.0) negate :: Float -> Float sin, asin, cos, acos, tan, atan :: Float -> Float
10 El tipo Float El Lenguaje Haskell Funciones y operadores: atan2 :: Float -> Float -> Float log, exp :: Float -> Float sqrt :: Float -> Float pi :: Float trucate, round, floor, ceiling :: Float -> Float fromint :: Int -> Float frominteger :: Integer -> Float
11 El Lenguaje Haskell El tipo Double Números reales en un intervalo mayor que Float Más precisión (doble) Operaciones disponibles: las mismas que para Float
12 El tipo Char El Lenguaje Haskell Un valor tipo Char representa un carácter ( a, 1,? ) Caracteres especiales van precedidos por \ \n Salto de línea \t Tabulador \ Comilla \ Comilla doble \ El carácter \ Funciones: ord :: Char -> Int chr :: Int -> Char isupper, islower, isdigit, isalfa :: Char -> Bool toupper, tolower :: Char -> Char
13 El tipo Char El Lenguaje Haskell Ejemplos: Prelude> toupper a A :: Char Prelude> isupper a False :: Bool Prelude> ord a 97 :: Int Prelude> chr 98 b :: Char
14 El Lenguaje Haskell de igualdad y orden Para todos los tipos básicos están definidos los operadores binarios que devuelven un valor booleano: (<) mayor que ( ) mayor o igual que (<) menor que ( ) menor o igual que (==) igual que ( ) distinto de
15 El Lenguaje Haskell de igualdad y orden El tipo de los dos argumentos debe ser el mismo Prelude> Prelude> b > a True :: Bool True :: Bool Prelude> x == y Prelude> False < True False :: Bool True :: Bool Prelude> x y Prelude> (1 < 5) && (10 > 9) True :: Bool True :: Bool Prelude> True < a ERROR : Type error in application *** Expression : True < a *** Term : True *** Type : Bool *** Does not match : Char
16 El Lenguaje Haskell de igualdad y orden Orden para el tipo Char: mayúsculas son menores que minúsculas. Dentro de cada grupo se mantiene el orden alfabético. Orden para el tipo Bool: False menor que True (==) es el símbolo de igualdad, = se reserva para definir funciones Para todos los tipos que definen un orden, están definidas las funciones max y min
17 Índice El Lenguaje Haskell 1 El lenguaje Haskell 2 simples predefinidos 3 predefinidos 4 5 predefinidos su definición Prioridad y Asociatividad de los operadores 6 Patrones y otros tipos de Expresiones
18 El Lenguaje Haskell Además de los tipos simples, Haskell define tipos estructurados que permiten representar colecciones de objetos. Tuplas Una tupla es un dato compuesto donde cada componente puede ser de un tipo diferente Si v 1, v 2,..., v n son valores con tipo t 1, t 2,..., t n, entonces (v 1, v 2,..., v n )es una tupla con tipo (t 1, t 2,..., t n ) Ejemplos: Prelude> ( a, True, 1.5) ( a, True, 1.5) :: (Char, Bool, Double) Útiles cuando una función tiene que devolver más de un valor predsuc :: Integer -> (Integer, Integer) predsuc = (x - 1, x + 1)
19 El Lenguaje Haskell Listas Una lista es una colección de cero o más elementos todos del mismo tipo. Hay dos constructores u operadores para construir valores para listas: [] Lista vacía (:) Añade un elemento al princicipo de una lista. Si v 1, v 2,..., v n son valores con tipo t, entonces v 1 : (v 2 : (... (v n 1 : (v n : []))... )) es una lista con tipo [t] Ejemplos: 1 : [] Lista que almacena un único entero; tipo [Integer] 3 : (1 : []) Lista que almacena dos enteros; primero el 3 y luego el 1; tipo [Integer] a : (1 : []) Error de tipo
20 El Lenguaje Haskell Listas Una lista es una colección de cero o más elementos todos del mismo tipo. Hay dos constructores u operadores para construir valores para listas: [] Lista vacía (:) Añade un elemento al princicipo de una lista. Si v 1, v 2,..., v n son valores con tipo t, entonces v 1 : (v 2 : (... (v n 1 : (v n : []))... )) es una lista con tipo [t] Ejemplos: 1 : [] Lista que almacena un único entero; tipo [Integer] 3 : (1 : []) Lista que almacena dos enteros; primero el 3 y luego el 1; tipo [Integer] a : (1 : []) Error de tipo
21 El Lenguaje Haskell Listas Asociatividad a la derecha del operador (:). La lista x 1 : x 2 : : x n 1 : x n : [] representará x 1 : (x 2 : ( : (x n 1 : (x n : []))... )) Haskell permite una sintaxis más cómoda [x 1, x 2,..., x n 1, x n ] Ejemplos: Prelude> 1:(2:(3:[])) [1,2,3] :: [Integer] Prelude> 1:2:3:[] [1,2,3] :: [Integer] Prelude> [1,2,3] [1,2,3] :: [Integer]
22 El Lenguaje Haskell Listas Asociatividad a la derecha del operador (:). La lista x 1 : x 2 : : x n 1 : x n : [] representará x 1 : (x 2 : ( : (x n 1 : (x n : []))... )) Haskell permite una sintaxis más cómoda [x 1, x 2,..., x n 1, x n ] Ejemplos: Prelude> 1:(2:(3:[])) [1,2,3] :: [Integer] Prelude> 1:2:3:[] [1,2,3] :: [Integer] Prelude> [1,2,3] [1,2,3] :: [Integer]
23 El Lenguaje Haskell Cadenas de caracteres Una cadena de caracteres es una secuencia de cero o más caracteres. Lista de caracteres x 1 x 2... x n 1 x n representa [ x 1, x 2,..., x n 1, x n] Ejemplos: Prelude> [ U, n,, C, o, c, h, e ] Un Coche :: [Char] Prelude> Un Coche Un Coche :: String Prelude> U : n : : C : o : c : h : e :[] Un Coche :: [Char]
24 El Lenguaje Haskell Cadenas de caracteres Una cadena de caracteres es una secuencia de cero o más caracteres. Lista de caracteres x 1 x 2... x n 1 x n representa [ x 1, x 2,..., x n 1, x n] Ejemplos: Prelude> [ U, n,, C, o, c, h, e ] Un Coche :: [Char] Prelude> Un Coche Un Coche :: String Prelude> U : n : : C : o : c : h : e :[] Un Coche :: [Char]
25 El Lenguaje Haskell El constructor de tipo ( ) Para declarar el tipo correspondiente a las funciones. Si t 1, t 2,..., t n, t r son tipos válidos, entonces t 1 t 2 t n t r es el tipo de una función con n argumentos Ejemplo: inc :: Integer -> Integer inc x = x + 1
26 El Lenguaje Haskell El constructor de tipo ( ) Para declarar el tipo correspondiente a las funciones. Si t 1, t 2,..., t n, t r son tipos válidos, entonces t 1 t 2 t n t r es el tipo de una función con n argumentos Ejemplo: inc :: Integer -> Integer inc x = x + 1
27 El Lenguaje Haskell El constructor de tipo ( ) Funciones como argumento o resultado. Funciones que devuelven otra función (orden superior): componer :: (Int -> Int) -> (Int -> Int) -> Int -> Int componer f g x = g (f x) No pueden eliminarse los paréntesis componer inc inc 10 = sustituyendo en la definición de componer inc(inc10) = por la definición de inc (inc10) + 1 = por la definición de inc (10 + 1) + 1, por la definición de (+): , y de nuevo por la definición de (+): 12
28 Índice El Lenguaje Haskell 1 El lenguaje Haskell 2 simples predefinidos 3 predefinidos 4 5 predefinidos su definición Prioridad y Asociatividad de los operadores 6 Patrones y otros tipos de Expresiones
29 El Lenguaje Haskell Insertar comentarios Dos modos de incluir comentarios (texto ignorado por el evaluador) en un programa: de una sola ĺınea: comienzan por dos guiones consecutivos ( ) y abarcan hasta el final de la ĺınea actual: f :: Integer -> Integer f x = x Esto es un comentario de más de una ĺınea: comienzan por los caracteres {- y acaban con -} {- Esto es un comentario de más de una línea -} g :: Integer -> Integer g x = x - 1
30 Índice El Lenguaje Haskell predefinidos su definición Prioridad y Asociatividad 1 El lenguaje Haskell 2 simples predefinidos 3 predefinidos 4 5 predefinidos su definición Prioridad y Asociatividad de los operadores 6 Patrones y otros tipos de Expresiones
31 El Lenguaje Haskell predefinidos su definición Prioridad y Asociatividad son funciones binarias cuyo nombre es simbólico (cadena de signos, no letras) Pueden ser invocados de forma infija Hay operadores predefinidos como &&,, +,,, /y Podemos definir nuevos operadores utilizando uno o más de los siguientes símbolos: :! #$%& + / <=>?@\ sólo una vez y al principio. Solo es reservado Los operadores que comienzan por (:) tienen un significado especial, constructores infijos de datos Ejemplos de operadores: && == // $ % + < + >? Reservados: :: :.. \
32 Cláusulas Infix El Lenguaje Haskell predefinidos su definición Prioridad y Asociatividad Al definir un nuevo operador podemos indicar su prioridad (0 a 9) y su asociatividad infix [prioridad] [identificador] No asociativo infixl [prioridad] [identificador] Asociativo a izda. infixr [prioridad] [identificador] Asociativo a dcha. Ejemplo de definición de operador infix 4 = -- Prioridad 4, no asociativa ( =) :: Float -> Float -> Bool -- Tipo x = y = abs (x - y) < Definición Obligatorio escribirlo entre paréntesis en la declaración de tipo Puede usarse de modo infijo Main> 1.0 = 2.0 Main> 1.0 = False :: Bool True :: Bool
33 Prioridades El Lenguaje Haskell predefinidos su definición Prioridad y Asociatividad Ante prioridades distintas, se agrupan en primer lugar los de mayor prioridad, en ausencia de paréntesis Ejemplo: La expresión se interpreta como 1 + (2 4) ya que ( ) tiene mayor prioridad (7) que (+) (6) Si se desea otra interpretación, se pueden utilizar paréntesis: (1 + 2) 4 La llamada a una función tiene prioridad máxima (10) La prioridad no aclara qué ocurre cuando un mismo operador aparece varias veces en una expresión: puede ser intepretado como ((8 5) 1) ó (8 (5 1)). La asociatividad indica que la primera opción es la correcta
34 El Lenguaje Haskell predefinidos su definición Prioridad y Asociatividad Asociatividades Si un operador es asociativo a la izquierda: x 1 x 2 x n 1 x n = (... (x 1 x 2 ) x n 1 ) x n Si un operador es asociativo a la derecha: x 1 x 2 x n 1 x n = x 1 (x 2 (x n 1 x n )... )
35 El Lenguaje Haskell predefinidos su definición Prioridad y Asociatividad Asociatividades Si un operador es asociativo a la izquierda: x 1 x 2 x n 1 x n = (... (x 1 x 2 ) x n 1 ) x n Si un operador es asociativo a la derecha: x 1 x 2 x n 1 x n = x 1 (x 2 (x n 1 x n )... )
36 El Lenguaje Haskell predefinidos su definición Prioridad y Asociatividad Si un operador es no asociativo, no puede utilizarse más de una vez sin aclarar el significado con paréntesis Ejemplos: infix 7 ( ) :: Integer -> Integer x y = div x y Main> ERROR: Ambiguous use of operator with Main> (7 4) 2 0 :: Integer Main> 1 < 2 == True ERROR: Ambiguous use of operator < with == En Haskell, todo operador no declarado con cláusulas infix, toma por defecto prioridad 9 y asociatividad izquierda.
37 El Lenguaje Haskell predefinidos su definición Prioridad y Asociatividad Tabla de Prioridad y Asociatividad de los operadores predefinidos infixr 9 infixl 9!! infixr 8,, infixl 7, /, quot, rem, div, mod infixl 6 +, - infixr 5 :, ++ infix 4 ==,, <,,, >, elem, notelem infixr 3 && infixr 2 infixl 1, = infixr 1 = infixr 0 $, $!, seq
38 El Lenguaje Haskell frente a funciones predefinidos su definición Prioridad y Asociatividad Cualquier operador puede usarse de modo prefijo o infijo, independientemente de como esté declarado infix 4 = ( =) :: Float -> Float -> Bool ( =) x y = abs (x - y) < Toda función puede convertirse en un operador si se escribe entre acentos franceses: suma :: Integer -> Integer -> Integer suma x y = x + y x suma y = x + y Main> suma 1 2 Main> 1 suma 2 Se puede dar prioridad y asociatividad al uso infijo de cualquier función: infixl 6 suma
39 Índice El Lenguaje Haskell Patrones y otros tipos de Expresiones 1 El lenguaje Haskell 2 simples predefinidos 3 predefinidos 4 5 predefinidos su definición Prioridad y Asociatividad de los operadores 6 Patrones y otros tipos de Expresiones
40 El Lenguaje Haskell Comparación de patrones Patrones y otros tipos de Expresiones En Haskell los parámetros formales de una función no sólo pueden ser nombres de variables, un argumento puede ser un patrón (una expresión) Es posible definir una función dando más de una ecuación para ésta. Cada ecuación definirá el comportamiento de la función para distintas formas del argumento. Los patrones capturan dicha forma Al aplicar una función a un parámetro concreto la comparación de patrones determina la ecuación a utilizar
41 Patrones constantes El Lenguaje Haskell Patrones y otros tipos de Expresiones Un patrón constante puede ser un número, un carácter o un constructor de datos. f :: Integer -> Bool = True f 2 = False Main> f 1 True :: Bool Main> f 3 Program error: f 3
42 Patrones constantes El Lenguaje Haskell Patrones y otros tipos de Expresiones La función está parcialmente definida. Si queremos definirla totalmente, añadimos otra ecuación: f :: Integer -> Integer f 1 = True f 2 = False -- Tercera línea f x = True Atención al orden. Y si apareciera f 1 False en la tercera ĺınea?
43 Patrones constantes El Lenguaje Haskell Patrones y otros tipos de Expresiones Con un patrón constante sólo unifica un argumento que coincida con esa constante Cuando la función tiene más de un argumento: Se comprueban los patrones correspondientes a las distintas ecuaciones en el orden dado por el programa, hasta que se encuentre una que coincida Dentro de una misma ecuación se intentan unificar los patrones correspondientes a los argumentos de izquierda a derecha Cuando un patrón falla para un argumento, se pasa a la siguiente ecuación La función que se está definiendo puede aparecer como parte de la expresión resultado: RECURSIVIDAD El uso de patrones y recursividad permite definiciones compactas y elegantes
44 Recursividad El Lenguaje Haskell Patrones y otros tipos de Expresiones Ejemplo: fact :: Integer -> Integer fact 0 = 1 fact n = n * fact(n - 1) Para que una definición recursiva sea efectiva hay que garantizar que: Exista un caso no recursivo, al menos. Caso base. En el ejemplo, fact0 En cada llamada recursiva, el valor del argumento se acerca al caso base El caso base se alcanza, es decir, la reducción acaba. Como en el ejemplo.
45 Recursividad El Lenguaje Haskell Patrones y otros tipos de Expresiones Si una de estas condiciones falla, la reducción no terminará: fact :: Integer -> Integer fact 0 = 1 fact n = n * (n - 1) * fact (n - 2) -- Falla la tercera condición. -- No termina para impares
46 Patrones para listas El Lenguaje Haskell Patrones y otros tipos de Expresiones Los patrones que se usan al definir funciones que trabajen con listas toman las siguientes formas: [] Sólo unifica con un argumento que sea una lista vacía [x], [x, y], etc. sólo unifican con listas de uno, dos, etc. argumentos (x : xs) unifica con listas con al menos un elemento (x : y : zs) unifica con listas con al menos dos elementos... suma :: [Integer] -> Integer suma [] = 0 -- Caso base suma (x:xs) = x + suma xs -- Caso recursivo
47 Patrones para tuplas El Lenguaje Haskell Patrones y otros tipos de Expresiones Puede usarse la sintaxis de tuplas en patrones primero2 :: (Integer, Integer) -> Integer primero2 (x, y) = x -- Primero para pares primero3 :: (Integer, Integer, Integer) -> Integer primero3 (x, y, z) = x -- Primero para ternas Los patrones pueden anidarse sumapares :: [(Integer, Integer)] -> Integer sumapares [] = 0 sumapares ((x, y):xs) = x + y + sumapares xs
48 Patrones aritméticos El Lenguaje Haskell Patrones y otros tipos de Expresiones Un patrón aritmético es de la forma (n + k), donde k es un número natural factorial :: Integer -> Integer factorial 0 = 1 factorial (n + 1) = (n + 1) * factorial n
49 El Lenguaje Haskell Patrones nombrados o Seudónimos Patrones y otros tipos de Expresiones Un patrón seudónimo o patrón alias sirve para nombrar un patrón utilizar el seudónimo en vez del patrón en la parte derecha de la definición factorial :: Integer -> Integer factorial 0 = 1 factorial m@(n + 1) = m * factorial n El en la segunda ecuación asigna el seudónimo m al patrón (n + 1)
50 Patrón subrayado El Lenguaje Haskell Patrones y otros tipos de Expresiones Un patrón subrayado ( ) unifica con cualquier argumento pero no establece ninguna ligadura longitud :: [Integer] -> Integer longitud [] = 0 longitud ( :xs) = 1 + longitud xs
51 El Lenguaje Haskell Patrones y evaluación perezosa Patrones y otros tipos de Expresiones La unificación determina qué ecuación es seleccionada para reducir una expresión a partir de la forma de los argumentos esvacía :: [a] -> Bool esvacía [] = True esvacía ( : ) = False Para poder reducir una expresión como esvacía l es necesario saber si l es una lista vacía o no Haskell evalúa un argumento hasta obtener un número de constructores suficiente para resolver el patrón, sin obtener necesariamente su forma normal infinita :: [Integer] esvacía infinita infinita = 1: infinita = esvacía (1: infinita) False
52 Expresiones case El Lenguaje Haskell Patrones y otros tipos de Expresiones La sintaxis de esta construcción es: case expr of patron 1 resultado 1 patron 2 resultado 2... patron n resultado n Todos los patrones son del mismo tipo (el mismo que el de expr) Todos los resultados deben ser del mismo tipo, el tipo del resultado Ejemplo: long :: [Integer] -> Integer long ls = case ls of [] 0 :xs 1 + long xs
53 La función error El Lenguaje Haskell Patrones y otros tipos de Expresiones Permite controlar casos sin sentido en funciones parciales y generar un mensaje de error cabeza :: [Integer] -> Integer cabeza [] = error lista vacía cabeza (x: ) = x Main> cabeza [1, 2, 3] 1 :: Integer Main> cabeza [] Program error: lista vacía
54 El Lenguaje Haskell Funciones a trozos (por partes) Patrones y otros tipos de Expresiones En ellas el resultado depende de cierta condición absoluto :: Integer -> Integer absoluto x x 0 = x x < 0 = -x El sangrado es obligatorio (con el tabulador, no espacios) Guardas, son de tipo Bool Se evalúan las guardas en el orden textual hasta encontrar un valor True, en cuyo caso se devuelve la expresión a la derecha de dicha guarda Puede usarse como guarda otherwise, que equivale a True
55 El Lenguaje Haskell Expresiones condicionales Patrones y otros tipos de Expresiones Otro modo de escribir expresiones cuyo resultado depende de cierta condición: if exprbool then exprsi else exprno Funcionamiento: Se evalúa exprbool, de tipo Bool Si el valor es True, devuelve exprno En otro caso, exprsi Los tipos de ambos resultados deben coincidir Al ser perezoso, no se evalúa más que el resultado que se devuelve Es válida la expresión 2 if a < z then 10 else 4
56 El Lenguaje Haskell Expresiones condicionales Patrones y otros tipos de Expresiones Ejemplo: maxent :: Integer -> Integer -> Integer maxent x y = if x y then x else y
57 Definiciones locales El Lenguaje Haskell Patrones y otros tipos de Expresiones Nombrando subexpresiones: raices :: Float Float Float (Float, Float) raices a b c b 2 4 a c 0 = (( b + sqrt(b 2 4 a c))/(2 a), ( b sqrt(b 2 4 a c))/(2 a)) otherwise = error raices complejas
58 Definiciones locales El Lenguaje Haskell Patrones y otros tipos de Expresiones raices :: Float Float Float (Float, Float) raices a b c disc 0 = (( b + raizdisc)/denom, ( b raizdisc)/denom) otherwise = error raices complejas where disc = b 2 4 a c raizdisc = sqrt disc denom = 2 a Las definiciones locales where solo pueden aparecer a final de una definición de función
59 Definiciones locales El Lenguaje Haskell Patrones y otros tipos de Expresiones Para introducir definiciones locales en cualquier parte de una expresión se usa let e in. Prelude> let f n = n in f :: Integer
60 Expresiones lambda El Lenguaje Haskell Patrones y otros tipos de Expresiones Haskell permite definir funciones anónimas Ejemplo: λ x x + 1 Con un argumento: Prelude> :t λ x -> isupper x λ x -> isupper x :: Char -> Bool Con más de un argumento: Prelude> :t λ x y -> isupper x && isupper y λ x y -> isupper x && isupper y :: Char -> Char -> Bool Prelude> (λ x y -> isupper x && isupper y) A z False :: Bool
61 Sangrado El Lenguaje Haskell Patrones y otros tipos de Expresiones Cuándo acaba una definición Definiciones globales Definiciones locales introducidas por where, let Alternativa al layout: llaves y ; h x y = let {dob n = 2 * n; tri n = 3 * n}in dob x + tri y
62 Ámbitos y módulos El Lenguaje Haskell Patrones y otros tipos de Expresiones Reglas de ámbitos f :: Integer -> Integer f x = x * h 7 where h z = x z ^ 2 (+++) :: Integer -> Integer -> Integer a +++ b = 2 * a + f b import
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
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 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 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 detallesTema 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)
Más detallesLógica y Programación
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 Programación
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 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 detallesFunciones Segunda parte
Expresiones condicionales Matemática Discreta usando el computador 2011 Funciones Segunda parte Una expresión condicional utiliza una expresión de tipo Bool para decidir entre dos opciones Estructura if...then...
Más detallesTema 5: Introducción a la programación funcional.
Tema 5: Introducción a la programación funcional. Qué es la programación Funcional (I) La programación funcional apareció como un paradigma independiente a principio de los sesenta. Su creación es debida
Más detallesPrá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
Más detallesGUÍ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
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 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 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 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 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 detallesInformática Haskell Matemáticas Curso Pepe Gallardo Universidad de Málaga. Temario
Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Temario 1 Introducción y semántica operacional 2 Tipos predefinidos 3 Patrones y Definiciones de Funciones 4 Funciones
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 detallesApunte Laboratorio ALPI - El lenguaje de programación Pascal
Apunte Laboratorio ALPI - El lenguaje de programación Pascal 1 2 ÍNDICE GENERAL Índice 1. Estructura de un Programa en Pascal 3 2. Sintaxis de Pascal 4 2.1. Uso de mayúsculas.....................................
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 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 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 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 2: Introducción a la programación con Haskell
Tema 2: Introducción a la programación con Haskell 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
Más detallesTema 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
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 detallesTema 2: Introducción a la programación con Haskell
Tema 2: Introducción a la programación con Haskell 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
Más detallesPara 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
Más detallesUNIDAD 2 Descripción de un programa
Descripción de un programa Estructura general de un programa. Elementos básicos. Tipos de datos simples: enteros, reales y carácter. Representación de datos en memoria. Operaciones sobre tipos de datos
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 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 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 detallesIntroducció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/
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 detallesUn calculadora avanzada... y algo más!
INFORMÁTICA, GRUPO D Un calculadora avanzada... y algo más! Vamos a familiarizarnos con el entorno interactivo de Python. Vamos a construir expresiones aritméticas y a guardar los resultados en variables
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 detallesCAPÍTULO IV: 4.1 Introducción a la. Programación Funcional
CAPÍTULO IV: Programación Funcional 4.1 Introducción a la Programación Funcional 1 Programación Funcional Paradigma diferente a los imperativos, que se aleja de la máquina de von Neumann Basado en funciones
Más detallesTipos 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
Más detallesProgramación Declarativa. Ingeniería Informática Cuarto curso. Primer cuatrimestre. Escuela Politécnica Superior de Córdoba Universidad de Córdoba
Programación Declarativa Ingeniería Informática Cuarto curso. Primer cuatrimestre Escuela Politécnica Superior de Córdoba Universidad de Córdoba Curso académico: 2016 2017 Práctica número 1.- Introducción
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 detallesComprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.
Elementos básicos de programación en Java Objetivos del tema Conocer la estructura básica de un programa Java. Comprender los conceptos de tipo, valor y variable. Comprender las diferencias entre tipos
Más detallesElementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Más detallesEl 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
Más detallesProgramación Declarativa. Ingeniería Informática Cuarto curso. Primer cuatrimestre. Escuela Politécnica Superior de Córdoba Universidad de Córdoba
Programación Declarativa Ingeniería Informática Cuarto curso. Primer cuatrimestre Escuela Politécnica Superior de Córdoba Universidad de Córdoba Curso académico: 2017 2018 Práctica número 1.- Introducción
Más detallesInformática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales
UNA / AREA TRANSDEPARTAMENTAL DE ARTES MULTIMEDIALES Licenciatura en Artes Multimediales Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales JavaScript Algoritmo
Más detallesTEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.
Tema 2. TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL. PARTE : VARIABLES, OPERADORES Y CONSTANTES.. INTRODUCCIÓN AL LENGUAJE C 2. PROGRAMAS BÁSICOS EN LENGUAJE C 3. DATOS EN LENGUAJE C
Más detallesTema 4. Funciones de orden superior
Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 4. Funciones de orden superior 4.1 Funciones de orden superior 4.2 Expresiones lambda 4.3 Aplicación parcial Secciones
Más detallesEl lenguaje C. 1. Identificadores, constantes y variables
Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria
Más detallesTipos 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
Más detallesProgramación Declarativa
Programación Declarativa Tema 2: LISP (SCHEME) 2 Tema 2: LISP (SCHEME) Introducción Representación de Datos Definición de Funciones Predicados Listas 3 Introducción (I) SCHEME es un dialecto de LISP (LISt
Más detallesFicha de Aprendizaje N 13
Ficha de Aprendizaje N 13 Curso: Lógica y lenguaje de programación Tema: Fundamentos de programación Duración: 2 horas pedagógicas Logros de aprendizaje Identifica los diferentes tipos de operadores que
Más detallesPrincipios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones rcoppo@uns.edu.ar Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario
Más detallesLenguajes 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
Más detallesIntroducció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
Más detallesTema 2.- Expresiones y funciones
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 detallesInformática General 2018 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales
UNA / AREA TRANSDEPARTAMENTAL DE ARTES MULTIMEDIALES Licenciatura en Artes Multimediales Informática General 2018 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales JavaScript - Programación
Más detallesProgramació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 detallesDatos Elementales y formato de un programa en Java
Datos Elementales y formato de un programa en Java PROGRAMACION I Grado en Matematicas Informática Programación I - 2015/2016 Datos, variables y mi primer programa 1 Introducción a la programación o Programa:
Más detallesUnidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
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 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 detallesFORMATO DEL FICHERO CON LA TABLA DE SÍMBOLOS
FORMATO DEL FICHERO CON LA TABLA DE SÍMBOLOS Para la corrección de la Práctica de Procesadores de Lenguajes, y como se indica en la especificación de la misma (http://dlsiisv.fi.upm.es/procesadores/practica.html),
Más detallesTema 4. Funciones de orden superior
Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 4. Funciones de orden superior 4.1 Funciones de orden superior 4.2 Expresiones lambda 4.3
Más detallesTema 4. Operadores y Expresiones
Tema 4 Operadores y Expresiones Contenidos 1. Conceptos Básicos. 2. Operadores Aritméticos. 3. Operadores de Relación, de Igualdad y Lógicos. 4. Operadores de Incremento y Decremento. 5. Operadores y Expresiones
Más detallesProgramación con listas. El tipo lista
Capítulo 6. Programación con listas 68 Programación con listas El tipo lista La lista representa colecciones de objetos homogéneas (todos los objetos han de tener el mismo tipo). infixr 5 : data [a] =
Más detallesabril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples
Desarrollo de aplicaciones en Java Generación de código fuente Compilación Ejecución Elementos de aplicaciones simples EII147-01-02 Introducción a las tecnologías de información Escuela de Ingeniería Industrial
Más detallesTipos y Estructuras de Control. Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR
Tipos y Estructuras de Control Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Datos: variables y constantes Tipos básicos: entero, real, char, lógico Estructuras de control
Más detallesTipos de Datos Simples Contenido del Tema
T E M A 3 Tipos de Datos Simples Contenido del Tema 3.1. Concepto de Tipo 3.1.1. Elementos básicos: atributos y operaciones 3.1.2. Tipos. Concepto y necesidad 3.1.3. Operadores básicos 3.2. Tipos de Datos
Más detallesGUÍA DE TRABAJO N 1 C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 13
Página 1 de 13 Tema: FUNDAMENTOS DE PROGRAMACIÓN EN LENGUAJE C# Objetivo: Conocer y manejar correctamente los tipos de datos y las diferentes estructuras de programación que hacen parte del lenguaje de
Más detalles21/03/2018. Variables y Constantes. Los datos de un programa están representados por variables o constantes y tienen asociado un tipo.
Variables y Constantes Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Los datos de un programa están representados por variables
Más detallesTEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:
Más detallesTema 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 /
Más detallesTema 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
Más detallesINFOTECH MÓDULO 3 CURSO. Sintaxis del lenguaje de programación JAVA. Lógica y Lenguaje de Programación
INFOTECH MÓDULO 3 Sintaxis del lenguaje de programación JAVA CURSO Lógica y Lenguaje de Programación INFOTECH Nombre del módulo 3 Contenidos Recursos Comprensión e información Capacidades específicas Indagación
Más detalles4. Operadores Operador asignación
Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre
Más detallesTema 2: Desarrollo de Algoritmos. E.E. de Algorítmica
Tema 2: Desarrollo de Algoritmos E.E. de Algorítmica Temas a tratar Identificadores Variables Constantes Tipos de Datos Separadores Operadores Aritméticos Unarios Relacionales y Condicionales Nivel de
Más detallesTema 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
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 detallesJava. Introducción a la Programación Orientada a Objetos
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora
Más detallesDatos 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
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 detallesLos parámetros: son los campos que se comunican a los métodos de los objetos.
Modulo 6. Variables y Operadores Variables Un objeto almacena los estados en campos, estos campos se conocen en java como variables. Por eso a menudo podemos ver estas dos palabras usadas para referirse
Más detallesInstituto Tecnológico de Celaya
ELEMENTOS BÁSICOS DE C++: DECLARACIÓN DE VARIABLES A través de operaciones aritméticas (suma, resta, etc.) y lógicas (por ejemplo, comparaciones) los programas manipulan datos tales como números y caracteres.
Más detallesPHP: Lenguaje de programación
Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054
Más detallesLaboratorio 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
Más detallesMetodologí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 aguerra@uv.mx http://www.uv.mx/aguerra
Más detallesTema 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
Más detallesLenguajes de Programación. Capítulo 4. Expresiones.
Lenguajes de Programación. Capítulo 4. Expresiones. Carlos Ureña Almagro Curso 2011-12 Contents 1 Introducción 2 2 Literales 5 2.1 Literales tipos primitivos......................................... 5
Más detallesIntroducción a la Programación
Introducción a la Programación Fundamentos de Programación Ingeniería Informática en Sistemas de Información Alicia Troncoso 1 Contenido l Introducción l Mi primer programa l Etapas a seguir en la programación
Más detallesÍndice del capítulo. Capítulo 4. Expresiones. Las expresiones. Indice de la sección. Lenguajes de Programación. Introducción. 2.
Índice del capítulo Capítulo 4. Expresiones Lenguajes de Programación Capítulo 4. Expresiones 1. Carlos Ureña Almagro 2. Dpt. Lenguajes y Sistemas Informáticos ETSI Informática y de Telecomunicación Universidad
Más detallesFUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería
Más detallesInformá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
Más detalles