Hola me puse a darle al lenguaje de haskell y me hice este reverse improvisado

Código: Seleccionar todo

reverse'::[a] -> [a]
reverse' [] = []
reverse' xs = last xs:reverse' (init xs)
me llevo dolores de cabeza llegar a la solucion, pues estoy acostumbrado a la programacion imperativa mas que a la declarativa, pero poco a poco le voy pillando la soltura a esto del paradigma declarativo, sobre todo por que los codes son mas entendibles y optimizados

muestra:

Código: Seleccionar todo

GHCi, version 7.6.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
[1 of 1] Compiling Main             ( C:\Documents and Settings\Strup\Mis docume
ntos\Reverse.hs, interpreted )
Ok, modules loaded: Main.
*Main> putStrLn (reverse' "puta")
atup
*Main>
Saludos
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
Como me encanta que te encante haskell aqui dejo yo otra alternativa:

Código: Seleccionar todo

reverse' :: [a] -> [a]
reverse' xs = reverse' (tail xs) ++ [head xs]
Saludos marica
Como me encanta que te encante te dejo aqui otra alternativa, he usado condicionales pa variar un poco (si los quitas te atascas en un búclecico recursivo infinito xd)

Código: Seleccionar todo

reverse' :: String -> String
reverse' xs = if xs == [] then xs 
			  else reverse' (tail xs) ++ [head xs]
Saludos maquina marica
sanko escribió:Como me encanta que te encante te dejo aqui otra alternativa, he usado condicionales pa variar un poco (si los quitas te atascas en un búclecico recursivo infinito xd)

Código: Seleccionar todo

reverse' :: String -> String
reverse' xs = if xs == [] then xs 
			  else reverse' (tail xs) ++ [head xs]
Saludos maquina marica
aah que buena sanko cierto no cai en hacerlo asi tambien, de hecho tambien se podria hacer con guardas que evaluan condiciones booleanas como los if's, un saludo grande crack me gusto la alternativa
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
Wow increíble el código chicos... la verdad poco había escuchado hablar acerca de éste lenguaje, pero me parece fascinante que traigan cosas nuevas al foro.
Gracias NvK
bueno cuando dije condiciones boleanas quise decir en verdad expresiones boleanas xDD
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
Responder

Volver a “Fuentes”