PDF de programación - Tema 4: Definición de funciones

Imágen de pdf Tema 4: Definición de funciones

Tema 4: Definición de funcionesgráfica de visualizaciones

Publicado el 22 de Marzo del 2020
946 visualizaciones desde el 22 de Marzo del 2020
193,2 KB
46 paginas
Creado hace 9a (05/09/2014)
Tema 4: Definición de funciones

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

IM Tema 4: Definición de funciones

Tema 4: Definición de funciones
1. Definiciones por composición
2. Definiciones con condicionales
3. Definiciones con ecuaciones con guardas
4. Definiciones con equiparación de patrones

Constantes como patrones
Variables como patrones
Tuplas como patrones
Listas como patrones

5. Expresiones lambda
6. Secciones

2 / 22

IM Tema 4: Definición de funciones

Definiciones por composición

Definiciones por composición

Decidir si un carácter es un dígito:

isDigit :: Char -> Bool
isDigit c = c >= '0' && c <= '9'

Prelude

Decidir si un entero es par:

Prelude

even :: (Integral a) => a -> Bool
even n =

n `rem` 2 == 0

Dividir una lista en su n–ésimo elemento:

splitAt :: Int -> [a] -> ([a],[a])
splitAt n xs = (take n xs, drop n xs)

Prelude

3 / 22

IM Tema 4: Definición de funciones

Definiciones por composición

Definiciones por composición

Decidir si un carácter es un dígito:

isDigit :: Char -> Bool
isDigit c = c >= '0' && c <= '9'

Prelude

Decidir si un entero es par:

Prelude

even :: (Integral a) => a -> Bool
even n =

n `rem` 2 == 0

Dividir una lista en su n–ésimo elemento:

splitAt :: Int -> [a] -> ([a],[a])
splitAt n xs = (take n xs, drop n xs)

Prelude

3 / 22

IM Tema 4: Definición de funciones

Definiciones por composición

Definiciones por composición

Decidir si un carácter es un dígito:

isDigit :: Char -> Bool
isDigit c = c >= '0' && c <= '9'

Prelude

Decidir si un entero es par:

Prelude

even :: (Integral a) => a -> Bool
even n =

n `rem` 2 == 0

Dividir una lista en su n–ésimo elemento:

splitAt :: Int -> [a] -> ([a],[a])
splitAt n xs = (take n xs, drop n xs)

Prelude

3 / 22

IM Tema 4: Definición de funciones

Definiciones por composición

Definiciones por composición

Decidir si un carácter es un dígito:

isDigit :: Char -> Bool
isDigit c = c >= '0' && c <= '9'

Prelude

Decidir si un entero es par:

Prelude

even :: (Integral a) => a -> Bool
even n =

n `rem` 2 == 0

Dividir una lista en su n–ésimo elemento:

splitAt :: Int -> [a] -> ([a],[a])
splitAt n xs = (take n xs, drop n xs)

Prelude

3 / 22

IM Tema 4: Definición de funciones

Definiciones con condicionales

Definiciones con condicionales

Calcular el valor absoluto (con condicionales):

abs :: Int -> Int
abs n = if n >= 0 then n else -n

Prelude

Calcular el signo de un número (con condicionales anidados):

signum :: Int -> Int
signum n = if n < 0 then (-1) else

Prelude

if n == 0 then 0 else 1

4 / 22

IM Tema 4: Definición de funciones

Definiciones con condicionales

Definiciones con condicionales

Calcular el valor absoluto (con condicionales):

abs :: Int -> Int
abs n = if n >= 0 then n else -n

Prelude

Calcular el signo de un número (con condicionales anidados):

signum :: Int -> Int
signum n = if n < 0 then (-1) else

Prelude

if n == 0 then 0 else 1

4 / 22

IM Tema 4: Definición de funciones

Definiciones con condicionales

Definiciones con condicionales

Calcular el valor absoluto (con condicionales):

abs :: Int -> Int
abs n = if n >= 0 then n else -n

Prelude

Calcular el signo de un número (con condicionales anidados):

signum :: Int -> Int
signum n = if n < 0 then (-1) else

Prelude

if n == 0 then 0 else 1

4 / 22

IM Tema 4: Definición de funciones

Definiciones con ecuaciones con guardas

Definiciones con ecuaciones guardadas

Calcular el valor absoluto (con ecuaciones guardadas):

abs n | n >= 0

= n

| otherwise = -n

Prelude

Calcular el signo de un número (con ecuaciones guardadas):

Prelude

signum n | n < 0

= -1
| n == 0
= 0
| otherwise = 1

5 / 22

IM Tema 4: Definición de funciones

Definiciones con ecuaciones con guardas

Definiciones con ecuaciones guardadas

Calcular el valor absoluto (con ecuaciones guardadas):

abs n | n >= 0

= n

| otherwise = -n

Prelude

Calcular el signo de un número (con ecuaciones guardadas):

Prelude

signum n | n < 0

= -1
| n == 0
= 0
| otherwise = 1

5 / 22

IM Tema 4: Definición de funciones

Definiciones con ecuaciones con guardas

Definiciones con ecuaciones guardadas

Calcular el valor absoluto (con ecuaciones guardadas):

abs n | n >= 0

= n

| otherwise = -n

Prelude

Calcular el signo de un número (con ecuaciones guardadas):

Prelude

signum n | n < 0

= -1
| n == 0
= 0
| otherwise = 1

5 / 22

IM Tema 4: Definición de funciones

Definiciones con equiparación de patrones

Constantes como patrones

Tema 4: Definición de funciones

1. Definiciones por composición

2. Definiciones con condicionales

3. Definiciones con ecuaciones con guardas

4. Definiciones con equiparación de patrones

Constantes como patrones
Variables como patrones
Tuplas como patrones
Listas como patrones

5. Expresiones lambda

6 / 22

IM Tema 4: Definición de funciones

Definiciones con equiparación de patrones

Constantes como patrones

Definiciones con equiparación de patrones: Constantes

Calcular la negación:

not :: Bool -> Bool
not True =
not False =

False
True

Prelude

Calcular la conjunción (con valores):
Prelude

(&&) :: Bool -> Bool -> Bool
True && True = True
True && False = False
False && True
= False
False && False = False

7 / 22

IM Tema 4: Definición de funciones

Definiciones con equiparación de patrones

Constantes como patrones

Definiciones con equiparación de patrones: Constantes

Calcular la negación:

not :: Bool -> Bool
not True =
not False =

False
True

Prelude

Calcular la conjunción (con valores):
Prelude

(&&) :: Bool -> Bool -> Bool
True && True = True
True && False = False
False && True
= False
False && False = False

7 / 22

IM Tema 4: Definición de funciones

Definiciones con equiparación de patrones

Constantes como patrones

Definiciones con equiparación de patrones: Constantes

Calcular la negación:

not :: Bool -> Bool
not True =
not False =

False
True

Prelude

Calcular la conjunción (con valores):
Prelude

(&&) :: Bool -> Bool -> Bool
True && True = True
True && False = False
False && True
= False
False && False = False

7 / 22

IM Tema 4: Definición de funciones

Definiciones con equiparación de patrones

Variables como patrones

Tema 4: Definición de funciones

1. Definiciones por composición

2. Definiciones con condicionales

3. Definiciones con ecuaciones con guardas

4. Definiciones con equiparación de patrones

Constantes como patrones
Variables como patrones
Tuplas como patrones
Listas como patrones

5. Expresiones lambda

8 / 22

IM Tema 4: Definición de funciones

Definiciones con equiparación de patrones

Variables como patrones

Definiciones con equiparación de patrones: Variables

Calcular la conjunción (con variables anónimas):

Prelude

(&&) :: Bool -> Bool -> Bool
True && True = True
_

False

&& _

=

Calcular la conjunción (con variables):
Prelude

(&&) :: Bool -> Bool -> Bool
True && x = x
False && _ = False

9 / 22

IM Tema 4: Definición de funciones

Definiciones con equiparación de patrones

Variables como patrones

Definiciones con equiparación de patrones: Variables

Calcular la conjunción (con variables anónimas):

Prelude

(&&) :: Bool -> Bool -> Bool
True && True = True
_

False

&& _

=

Calcular la conjunción (con variables):
Prelude

(&&) :: Bool -> Bool -> Bool
True && x = x
False && _ = False

9 / 22

IM Tema 4: Definición de funciones

Definiciones con equiparación de patrones

Variables como patrones

Definiciones con equiparación de patrones: Variables

Calcular la conjunción (con variables anónimas):

Prelude

(&&) :: Bool -> Bool -> Bool
True && True = True
_

False

&& _

=

Calcular la conjunción (con variables):
Prelude

(&&) :: Bool -> Bool -> Bool
True && x = x
False && _ = False

9 / 22

IM Tema 4: Definición de funciones

Definiciones con equiparación de patrones

Tuplas como patrones

Tema 4: Definición de funciones

1. Definiciones por composición

2. Definiciones con condicionales

3. Definiciones con ecuaciones con guardas

4. Definiciones con equiparación de patrones

Constantes como patrones
Variables como patrones
Tuplas como patrones
Listas como patrones

5. Expresiones lambda

10 / 22

IM Tema 4: Definición de funciones

Definiciones con equiparación de patrones

Tuplas como patrones

Definiciones con equiparación de patrones: Tuplas

Calcular el primer elemento de un par:
Prelude

fst :: (a,b) -> a
fst (x,_) = x

Calcular el segundo elemento de un par:

Prelude

snd :: (a,b) -> b
snd (_,y) = y

11 / 22

IM Tema 4: Definición de funciones

Definiciones con equiparación de patrones

Tuplas como patrones

Definiciones con equiparación de patrones: Tuplas

Calcular el primer elemento de un par:
Prelude

fst :: (a,b) -> a
fst (x,_) = x

Calcular el segundo elemento de un par:

Prelude

snd :: (a,b) -> b
snd (_,y) = y

11 / 22

IM Tema 4: Definición de funciones

Definiciones con equiparación de patrones

Tuplas como patrones

Definiciones con equiparación de patrones: Tuplas

Calcular el primer elemento de un par:
Prelude

fst :: (a,b) -> a
fst (x,_) = x

Calcular el segundo elemento de un par:

Prelude

snd :: (a,b) -> b
snd (_,y) = y

11 / 22

IM Tema 4: Definición de funciones

Definiciones con equiparación de patrones

Listas como patrones

Tema 4: Definición de funciones

1. Definiciones por composición

2. Definiciones con condicionales

3. Definiciones con ecuaciones con guardas

4. Definiciones con equiparación de patrones

Constantes como patrones
Variables como patrones
Tuplas como 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

Definiciones con equiparació
  • Links de descarga
http://lwp-l.com/pdf17423

Comentarios de: Tema 4: Definición de funciones (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad