Los programas de Haskell se componen de definiciones y expresiones.
Un valor constante se define con name = expression.
five = 5
six = 3 + 3
Las funciones se definen con name parameters... = expression, y los parámetros solo se separan por espacios.
add number1 number2 = number1 + number2
Llamar a una función también es una expresión y se hace especificando su nombre y pasando argumentos para cada uno de los parámetros de la función, separados por espacios, igual que en las definiciones de funciones.
five = add 2 3
Los paréntesis pueden usarse para especificar el orden de evaluación de una expresión.
six = add 2 (1 * 4)
twelve = add 2 1 * 4
Haskell usa espacios en blanco y sangría para delimitar el código. El código que forma parte de una expresión debe tener más sangría que el comienzo de esa expresión.
-- A function split over multiple lines, so subsequent lines must be indented
add number1 number2 =
number1 + number2
https://en.wikibooks.org/wiki/Haskell/Indentation
Los módulos exportan funciones. Eso significa que puedes usar las funciones que el módulo pone a disposición en su declaración de exportación. Un módulo también puede definir funciones solo para uso interno. De forma predeterminada, las funciones que no se exportan explícitamente no se pueden usar desde fuera del módulo.
Al principio de un módulo, especificamos el nombre del módulo. Si tenemos un fichero llamado Calculator.hs, debemos llamar a nuestro módulo Calculator. Después, especificamos las funciones que exporta y, a partir de ahí, podemos empezar a escribir las funciones. Así que empezaremos con esto.
module Calculator ( add ) where
https://learnyouahaskell.github.io/modules#making-our-own-modules
Un comentario es un texto dentro del fichero de Haskell que no se interpreta como código.
Está pensado principalmente para que lo lean tú y otros programadores.
Existe una sintaxis ligera para los comentarios de una sola línea, basada en guiones dobles.
También son posibles los comentarios multilínea con el par de delimitadores de apertura y cierre {- y -}.
-- a single line comment
-- another single line comment
{- a multiline comment
spanning multiple lines
-}
Esta introducción al ejercicio toma prestado generosamente de Learn You a Haskell for Great Good!, bajo la Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License
En este ejercicio vas a escribir código para ayudarte a cocinar una lasaña magnífica con tu libro de cocina favorito.
Tienes tres tareas, todas relacionadas con el tiempo que se tarda en cocinar la lasaña.
Define la constante expectedMinutesInOven para comprobar cuántos minutos debe estar la lasaña en el horno. Según el libro de cocina, el tiempo esperado en el horno es de 40 minutos:
expectedMinutesInOven
--> 40
Define la función preparationTimeInMinutes, que toma como parámetro el número de capas que has añadido a la lasaña y devuelve cuántos minutos has tardado en prepararla, suponiendo que preparar cada capa te lleva 2 minutos.
preparationTimeInMinutes 3
--> 6
Define la función elapsedTimeInMinutes, que toma dos parámetros: el primer parámetro es el número de capas que has añadido a la lasaña y el segundo es el número de minutos que la lasaña lleva en el horno. La función debe devolver cuántos minutos has trabajado en cocinar la lasaña, que es la suma del tiempo de preparación en minutos y el tiempo en minutos que la lasaña lleva en el horno en ese momento.
elapsedTimeInMinutes 3 20
--> 26
Regístrate en Exercism para aprender y dominar Haskell con 107 ejercicios y mentoría humana real, todo gratis.