Programa en Haskell Tipos de datos pasadas como funciones # 3


En esta lista de programas ahora abordaremos el lenguaje de programación llamado haskell el cual esta orientado a un paradigma de programación funcional donde la sintaxis y el código están más claros y es más intuitivo entenderlo.



Tercer  programa funciones en haskell


{-
Reversa de una lista
-}
--reversa []=[]
--reversa x:xs = (reversa xs) ++ [x]
{-
Función cabeza
Cabeza l: devuelve el primer elemento de una lista
Función cola
Cola l: devuelve la lista resultante de eliminar el primer elemento de la lista l
Función inicio
Inicio l: Devuelve la lista resultante de eliminar el último elemento de la lista
Función último
Último l: Devuelve el último elemento de la lista l
-}
reversa [] = []
reversa (x : xs) = (reversa xs) ++ [x]
--Complejidad O(1)
cabeza [] = error "La lista no contiene ningun elemento"
cabeza (x : xs) = x
--Complejidad O(1)
cola [] = error "La lista no contiene ningun elemento"
cola (x : xs) = xs
--Complejidad O(n)
inicio [] = error "La lista no contiene ningun elemento"
inicio (x : xs) = if (xs /= []) then
x :(inicio (xs))
else []
--Complejidad O(n)
ultimo [] = error "La lista no contiene ningun elemento"
ultimo (x : xs) = if (xs == []) then x else (ultimo xs)
--Complejidad n^2
inicio2 = reversa.cola.reversa
ultimo2 = cabeza.reversa
{-
Ejercicio.
Toma n l : Dado n un natural y una lista l devuelve los primeros n elementos de la lista
-}
toma 0 xs = []
toma n [] = error "Lista vacia"
toma n (x : xs) = x:toma (n-1) xs
{-
Ejercicio 2.
Dado n un natural y una lista l, elimina los primeros n elementos de la lista
-}
--elimina::Integer->Lista l -> Lista l
elimina 0 xs = xs
elimina n [] = error "Lista vacia"
elimina n (x : xs) = elimina (n-1) xs
view raw reversa.hs hosted with ❤ by GitHub






RETO DEL BLOG, PROPÓN UN PROGRAMA MEJORADO Y CON SUS RESPECTIVAS EXCEPCIONES QUE PODRÍA TENER



Te sirven mis contenidos y quieres ayudarme a crecer invitame un chicle
Quieres ganar dinero acortando enlaces entonces registrate en Adfly

Comentarios

Entradas más populares de este blog

Programas en C #3 Tres números, el mayor, el menor y el del medio

Programas en Racket Programación Funcional #1