Haskell es un lenguaje de programación que requiere de un poco de tiempo para dominar su sintaxis, pero a pesar de su curva de aprendizaje tan pronunciada, ofrece grandes opciones para el estudio del paradigma emergente de la programación funcional, es decir, por medio de funciones. I.Lenguaje imperativo vs Haskell Para quienes hemos sufrido con las matemáticas a través de nuestras carreras podemos recordar: f: Z -> Z tal que f(x) = 2x + 1. "La función de enteros a enteros tal que para cada entero se le asocia 2x +1" En un lenguaje imperativo, es decir que acepta instrucciones se debe realizar: /*Función que devuelve el doble más uno*/ int sumaDoble(int variable) { int valor = 2 * variable + 1; return valor; } En Haskell, una vez que se entienden los rudimentos se puede realizar la misma función --Devuelve el doble más uno sumaDoble::Int->Int sumaDoble x = 2 * x + 1 Y luego para ejecutar la función simplemente: Prelude>sumaDoble 3 7 Naturalmente, todo tiene sus ventajas y desventajas, pero en la guerra de pardigmas, es bueno conocer un poco de todo. Haskell es un lenguaje fuertemente tipado, es decir si una entrada es declarada con un tipo Int, solo recibirá ese tipo, si no es declarado asume que la entrada es Double. Generará error si ingresa una cadena de caracteres por error. II. Instalación; En linux, se puede descargar directamente de la página de Haskell, o bien instalar ghci, ghc y cabal-install que corresponden a los programas base: $sudo apt-get install ghci ghc cabal-install En Windows se puede descargar de: https://www.haskell.org/platform/ Para actualizar se digita $cabal update Para instalar los paquetes por ejemplo multicore y paralelo $cabal install parallel Otros paquetes auxiliares en Linux se pueden instalar desde el Administrador de Paquetes. III. Manejo y programación: Una vez instalado los componentes, necesarios, se puede optar por trabajar de dos maneras, a manera de Python con un "interprete", o bien creando sus propias aplicaciones "stand-alone", esta es una de las características que más me llamó la atención. Algo importante, cuando se trabaja con "stand-alone" hay que recordar que Haskell no acepta indentado con tabulador, es necesario hacerlo con espaciadora. Si se trabaja a manera de lenguaje de interpretación $ghci Aparece un interprete denominado Prelude Prelude> Simplemente es cuestión de escribir en ella: Prelude> let sumaDoble x = 2*x + 1 Prelude> sumaDoble 3 7 Prelude> Ahora bien, si lo que se desea es una aplicación stand-alone, con cualquier editor de textos, se hace un archivo .hs --Estructura de Suma doble --Recibe entero y devuelve entero sumaDoble::Int->Int sumaDoble x = 2 * x + 1 --MAIN main = do --imprime un comentario en la pantalla putStrLn "Digite un número entero: " --recibe del usuario un valor x <- getLine --Convierte el valor recibido (cadena) en un valor entero let y = sumaDoble read(x) :: Int --Devuelve el valor y lo imprime en pantalla, show convierte el valor en cadena putStrLn ("Resultado: " ++ show(y)) Para compilar simplemente se coloca en la carpeta donde se encuentre el archivo .hs, digamos: /home//Documentos se abre la terminal y se digita: ghc - o .hs Para ejecutarlo solamente se requiere estar en la carpeta donde se encuentre el ejecutable y $./ IV. Algunas instrucciones básicas read x:: Convierte a x a show x Convierte x a Cadenacadena1 ++ cadena2 ++ cadena3 ConcatenaciónLos vectores se representan entre corchetes "[valor1, valor2 ... ]" En próximas entregas veremos un poco más a profundidad.
Haskell programación funcional (I)
Datos archivados del Taringa! original
0puntos
63visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
4visitas
0comentarios
Dar puntos: