Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Informática (2018–19)
5. Expresiones lambda
6. Secciones
2 / 22
IM Tema 4: Definición de funciones
Definiciones por composición
4 / 22
IM Tema 4: Definición de funciones
Definiciones con condicionales
4 / 22
IM Tema 4: Definición de funciones
Definiciones con condicionales
4 / 22
IM Tema 4: Definición de funciones
Definiciones con ecuaciones con guardas
5 / 22
IM Tema 4: Definición de funciones
Definiciones con ecuaciones con guardas
5 / 22
IM Tema 4: Definición de funciones
Definiciones con ecuaciones con guardas
5 / 22
IM Tema 4: Definición de funciones
Definiciones con equiparación de patrones
Constantes como patrones
5. Expresiones lambda
6 / 22
IM Tema 4: Definición de funciones
Definiciones con equiparación de patrones
Constantes como patrones
7 / 22
IM Tema 4: Definición de funciones
Definiciones con equiparación de patrones
Constantes como patrones
7 / 22
IM Tema 4: Definición de funciones
Definiciones con equiparación de patrones
Constantes como patrones
7 / 22
IM Tema 4: Definición de funciones
Definiciones con equiparación de patrones
Variables como patrones
5. Expresiones lambda
8 / 22
IM Tema 4: Definición de funciones
Definiciones con equiparación de patrones
Variables como patrones
9 / 22
IM Tema 4: Definición de funciones
Definiciones con equiparación de patrones
Variables como patrones
9 / 22
IM Tema 4: Definición de funciones
Definiciones con equiparación de patrones
Variables como patrones
9 / 22
IM Tema 4: Definición de funciones
Definiciones con equiparación de patrones
Tuplas como patrones
5. Expresiones lambda
10 / 22
IM Tema 4: Definición de funciones
Definiciones con equiparación de patrones
Tuplas como patrones
11 / 22
IM Tema 4: Definición de funciones
Definiciones con equiparación de patrones
Tuplas como patrones
11 / 22
IM Tema 4: Definición de funciones
Definiciones con equiparación de patrones
Tuplas como patrones
11 / 22
IM Tema 4: Definición de funciones
Definiciones con equiparación de patrones
Listas como patrones
5. Expresiones lambda
12 / 22
IM Tema 4: Definición de funciones
Definiciones con equiparación de patrones
Listas como patrones
Expresiones lambda
I Las funciones pueden construirse sin nombrarlas mediante las
expresiones lambda.
I Ejemplo de evaluación de expresiones lambda:
Prelude> (\x -> x+x) 3
6
15 / 22
IM Tema 4: Definición de funciones
Expresiones lambda
suma x y = x+y
I Definición con lambda:
16 / 22
IM Tema 4: Definición de funciones
Expresiones lambda
suma x y = x+y
I Definición con lambda:
16 / 22
IM Tema 4: Definición de funciones
Expresiones lambda
suma x y = x+y
I Definición con lambda:
16 / 22
IM Tema 4: Definición de funciones
Expresiones lambda
17 / 22
IM Tema 4: Definición de funciones
Expresiones lambda
17 / 22
IM Tema 4: Definición de funciones
Expresiones lambda
17 / 22
IM Tema 4: Definición de funciones
Expresiones lambda
18 / 22
IM Tema 4: Definición de funciones
Expresiones lambda
18 / 22
IM Tema 4: Definición de funciones
Expresiones lambda
18 / 22
IM Tema 4: Definición de funciones
Secciones
Secciones
I Los operadores son las funciones que se escriben entre sus
argumentos.
I Los operadores pueden convertirse en funciones prefijas
escribiéndolos entre paréntesis.
I Ejemplo de conversión:
Prelude> 2 + 3
5
Prelude> (+) 2 3
5
I Ejemplos de secciones:
Prelude> (2+) 3
5
Prelude> (+3) 2
5
19 / 22
IM Tema 4: Definición de funciones
Secciones
20 / 22
IM Tema 4: Definición de funciones
Secciones
Aplicaciones de secciones
I Uso en definiciones de funciones mediante secciones
suma' = (+)
siguiente = (1+)
inverso = (1/)
doble = (2*)
mitad = (/2)
I Uso en signatura de operadores:
Prelude
(&&) :: Bool -> Bool -> Bool
I Uso como argumento:
Prelude> map (2*) [1..5]
[2,4,6,8,10]
21 / 22
IM Tema 4: Definición de funciones
Bibliografía
Bibliografía
1. R. Bird. Introducción a la programación funcional con Haskell.
Prentice Hall, 2000.
I Cap. 1: Conceptos fundamentales.
2. G. Hutton Programming in Haskell. Cambridge University Press,
2007.
I Cap. 4: Defining functions.
3. B. O’Sullivan, D. Stewart y J. Goerzen Real World Haskell.
O’Reilly, 2008.
I Cap. 2: Types and Functions.
4. B.C. Ruiz, F. Gutiérrez, P. Guerrero y J.E. Gallardo. Razonando
con Haskell. Thompson, 2004.
I Cap. 2: Introducción a Haskell.
5. S. Thompson. Haskell: The Craft of Functional Programming,
Second Edition. Addison-Wesley, 1999.
I Cap. 3: Basic types and definitions.
22 / 22