Ir al contenido principal

Haskell for Todos 4

Haskell es uno de esos lenguajes de programación que obligan al programador Java (o de cualquier otro lenguaje) a cambiar su manera de crear código y no es para menos, la programación funcional es parecida a la matemática. Con Haskell creamos funciones parecidas a las verdaderas funciones matemáticas.

Los tipos de programación se pueden dividir en:

1. Programación Imperativa: Donde se describen, paso a paso, las instrucciones necesarias para resolver el problema.
2. Programación Declarativa: Donde se describe el problema que tenemos que solucionar pero no el cómo hacerlo.

En este último entran lenguajes como Haskell, Erlang y/o Elixir. Lenguajes de paradigma funcional. Donde se definen funciones similares a las funciones matemáticas.

Ejemplo. Calcular el factorial de un número.

factorial 0 = 1
factorial n = n * factorial(n - 1)


factorial.hs

factorial :: Int -> Int
factorial 0 = 1
factorial n = n * factorial(n - 1)

Ejecutar:

$ ghci
> :cd RUTA_SCRIPTS
> :l factorial.hs
> factorial 5
120

print_add.hs

add :: Integer -> Integer -> Integer
add x y = x+y

main :: IO()
main = do
	let a = 5
	let b = 7
	let resultado = add a b
	print("Resultado(" ++ show a ++ ", " ++ show b ++"): "++ show resultado)


{-
 Ejecutar:
 $ ghc print_add.hs
 $ ./print_add
-}

En éste ejemplo podemos notar que se ha definido una función que toma dos números y realiza la suma.

Ejemplo. Incrementar el valor de un número.

incrementar :: (Num a)=> a -> a
incrementar n = n + 1

main = do
     let num = 3
     let incrementa = incrementar(num)
     print(num)
     print(incrementa)

La programación funcional y los lenguajes como Haskell pueden sorprender a más de un programador que use lenguajes como Java y/o C#. En próximos post haremos más ejemplos.

Enlaces:

https://serokell.io/blog/10-reasons-to-use-haskell
https://github.com/Gabriel439/post-rfc/blob/main/sotu.md
http://jotajotavm.com/Haskell-21-Ejercicio-Factorial-en-Haskell.html

Comentarios

Publicar un comentario