Subido por moyas8919

FUNCIONAL resumen 1er P

Anuncio
Op y Fun Comunes
Funciosnes Para Listas
^ potencia
1)head :: [a] -> a
devuelve el 1er elem de la list
error si lista esta vacia
mod :: Integral a
=> a -> a -> a
2)last :: [a] -> a
mod modulo 1ro con 2do
devuelve el ult elem de la list
error si lista esta vacia
max :: Ord a => a ->
a -> a
maximo de 2 elem
3)tail :: [a] -> [a]
min :: Ord a => a ->
a -> a
minimo de 2 elem
4)init :: [a] -> [a]
(a, b) -> a
fst 1er elem de una tupla
par
5)length :: [a] -> Int
even :: a => a ->
Bool
True si es par False caso
contrario
6)take :: Int -> [a] -> [a]
Odd :: a => a ->
Bool
True si es impar False caso
contrario
fst :: (a, b) -> a
devulve el primer
eleemto de la tupla
div :: Int a => a -> a -> a
función división div 3 2 =1
devuelve la list sin el ult
error si lista esta vacia
elem
9) dropWhile :: (a -> Bool) -> [a] -> [a]
devuelve una lista resultado de elimnar los elementos que cuplan
la condición (encuentra uno que no cumpla y ahí termina)
17) any :: (a -> Bool) -> [a] -> Bool
10) map :: (a -> b) -> [a] -> [b]
devuelve una lista construida aplicando una función (el primer
argumento) a todos los elementos en una lista que se pasa como el
segundo argumento
18) and :: [Bool] -> Bool
Aplica el and cada uno de los elementos de lalista
en caso de encontrar un False el res te dara False
y si todos son True te dara True
11) zip :: [a] -> [b] -> [(a, b)]
19) or :: [Bool] -> Bool
Aplica el or a cada uno de los elementos de lalista en
caso de encontrar un True el res te dara True y si todos
son False te dara false
hace una lista de tuplas, cada uno de los cuales contiene
elementos de ambas listas en la misma posición
devuelve True si al menos un elemento de la lista
cumple la condición de la función
12) zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
hace una lista, sus elementos se calculan a partir de la función y
los elementos de las listas de entrada que ocurren en la misma
posición en ambas listas
20) máximum :: [a] -> a
13) concat :: [[a]] -> [a]
Dado una matriz lo concatetenamos en un solo areeglo
21) minimum :: [a] -> a
14) reverse :: [a] - > [a]
Dado un arreglo te devuelve la misma pero invertida
22) (:) :: a -> [a] -> [a]
Inserta el elemento dado al inicio de la
lista y te devuelve la lista luego de
dicha insertacion
7)takeWhile :: (a -> Bool) -> [a] -> [a]
15) sum :: Int a => [a] -> a
devuelve una lista que cumpla la condición dada
( los que den true con la condición encuentra uno que
no cumpla y ahí termina)
Dado un arreglo de enteros te devulve el resultado de la suma
de todos ellos
23) (++) :: [a] -> [a] -> [a]
Une dos lista en una sola pero deven ser
del mismo tipo
8)drop :: Int -> [a] -> [a]
16) filter :: (a -> Bool) -> [a] -> [a]
elimina el numero de elementos dado de
la lista dada
Devuelve una lista que contiene todos los
elementos que cumplen la condicion de la
function dada (las que dan True)
devuelve la list sin el ult
error si lista esta vacia
elem
devuelve el numero de elementos que contiene la
lista
crea una lista, el primer argumento determina cuántos
elementos deben tomarse de la lista que se pasa como
segundo argumento
Dado un arreglo te devulve el elemeto de mayor valor
Dado un arreglo te devulve el elemeto de menor valor
24) (!!) :: [a] -> Int -> a
Te devulve el elemnto delindice que indiques
Error si no encuentra dicho indice
25) foldr :: (a -> b -> b) -> b -> [a] -> b
27) (.) :: (b -> c) -> (a -> b) -> a -> c
Expresion Case
Foldr take [5,7,9,10,3,4][4,2,1]
take 4(take 2(take 1 [5,7,9,10,3,4]))
(reverse . take 10 . enumFrom) 10
[19,18,17,16,15,14,13,12,11,10]
ejm1 x = case x of
'a' -> True
'_' -> False
Foldr (+) 5 [1,2,3,4]
(+)1((+)2((+)3((+)4 5)))
15
toma el segundo argumento y el último elemento de la lista
y aplica la función, luego toma el penúltimo elemento del
final y el resultado, y así sucesivamente. Ver scanr para
resultados intermedios.
26) foldl :: (b -> a -> b) -> b -> [a] -> b
tFoldl (\x y -> 2*x + y) 4 [1,2,3] x=4->x=9->x=20->x=43
--43 -->x=4 y=1
--x=9y=2
--x=20 y=3
--r=43
((2+).(3*).(4-)) 2
8
Se ejecuta una serie de funciones partiendo de la función del extremo
derecho y al resultado de ello se lo evalua con la siguiente función de y
hasi sucesivamnente
28) zipwith=PASAR A UNA LISTA HACIENDO->recibe una
funcion y dos arreglos como resultado tendremos a una
lista resultantede aplicar dicha funcion a ambas listas
lstZipWith::(a->b->c)->[a]->[b]->[c]
lstZipWith fn lstA lstB = zipWith fn lstA lstB
Foldl (/) 64 [4,2,4]
--2.0
toma el segundo argumento y el primer elemento de la lista
y les aplica la función, luego alimenta la función con este
resultado y el segundo argumento y así sucesivamente.
--defnir una funcion que dada una matriz te devulva su diagonal principal
f11 lstlst = map fun (zip [0..((length lstlst)-1)] lstlst)
where
fun (ind,arr)=arr!!ind
--definir una funcion que resiva una lista y devuelvaTrue si esta ordenado ascendenteente
f12 lst= and (map may (zip ((pred (head lst)):(init lst)) lst))
where
may (a,b)=a<=b
*Main> True&&False
False
Descargar