# Haskell/Preparaciones
## Instalando Haskell

Haskell es un lenguaje de programación, es decir, un lenguaje en el que las personas pueden expresar cómo deben comportarse las computadoras. Es como escribir una receta de cocina: se escribe la receta y la computadora la ejecuta.
Para usar los programas Haskell, este necesita un programa especial llamado compilador de Haskell. Dicho compilador toma el código escrito en Haskell y lo traduce a código de máquina, un lenguaje más elemental que la computadora entiende. Usando la analogía de la cocina, usted escribe una receta (su programa Haskell) y un cocinero (un programa compilador) hace el trabajo de juntar los ingredientes reales en un plato comestible (un archivo ejecutable). Por supuesto, no puede obtener fácilmente la receta de un plato final (y no puede obtener el código Haskell del ejecutable después de compilarlo).
Para comenzar, visite haskell.org/downloads para obtener las instrucciones más recientes. La forma recomendada actual es usar GHCup. Úselo para instalar la última versión recomendada de GHC cabal (not stack) y el servidor de idioma Haskell. Debe usar cabal para instalar cualquier biblioteca de Haskell que necesite. Cubriremos el uso de cabal en profundidad en Haskell/Packaging
Nota
Usuarios de Linux:
Se desaconseja encarecidamente instalar cualquier cosa relacionada con Haskell usando los repositorios de paquetes y el administrador de paquetes de su sistema (a menos que esté usando Fedora o NixOS). Específicamente, las distribuciones como Arch Linux y Debian administran muy mal los paquetes de Haskell y darán lugar a una mala experiencia con las herramientas. Use GHCup y Cabal como se indicó anteriormente.
Para probar algunos conceptos básicos de Haskell sin descargar e instalar, hay un área de ejecución que incluye algunos paquetes de forma predeterminada. La mayoría de las instrucciones aquí en Wikibook también funcionarán en el patio de recreo, aunque no acepta la entrada del usuario.

## Primer código

Después de la instalación, se hará nuestra primera codificación Haskell con el programa llamado GHCi (la 'i' significa 'interactivo'). Dependiendo de su sistema operativo, realice los siguientes pasos:
* En Windows: haga clic en Inicio, luego en Ejecutar, luego escriba 'cmd' y presione Enter, luego escriba ghci presione Enter una vez más.
* En MacOS: Abra la aplicación "Terminal" que se encuentra en la carpeta "Aplicaciones/Utilidades", escriba las letras ghci en la ventana que aparece y presione la tecla Intro.
* En Linux: abra una terminal y ejecute ghci.
Debería obtener una salida similar a la siguiente:
El primer bit es la versión de GHCi y le indica cómo obtener ayuda en GHCi. El bit Prelude> se conoce como aviso. Aquí es donde ingresa los comandos y GHCi responderá con sus resultados. El indicador también le indica que el módulo cargado actualmente es Prelude, lo que le da acceso a la mayoría de las funciones integradas.
Ahora intentemos algo de aritmética básica:
Estos operadores coinciden con la mayoría de los otros lenguajes de programación: + es suma, * es multiplicación y ^ es exponenciación (elevar a la potencia de, $a^{b}$). Como se muestra en el segundo ejemplo, Haskell sigue el orden estándar de las operaciones matemáticas (por ejemplo, la multiplicación antes que la suma).
Haskell también puede calcular el resto de una división. En Haskell el operador para resto es mod Este operador se coloca antes de los dos operandos.
Por ejemplo, se requiere conocer el resto de dividir 45 entre 6.
Entonces hacemos:
Una forma alternativa es colocar el operador mod entre medio de los operados. En este caso, este operador debe ir entre tilde izquierdo o grave `.
Puede ocurrir también que necesitemos saber el resto de la división entera de dos números. Para ello se utiliza el operador div. Al igual que ocurre con el operador anterior, este va siempre antes de los dos operandos. Siguiendo la misma idea que el operador anteriormente visto, si se desea usar entre medio de los operadores debe ir entre tildes izquierdo o grave.
Tabla que resume las operaciones aritméticas básicas de Haskell:
Operaciones básicas de Haskell :
| Operador | Símbolo en Haskell |
| Adición | + |
| Sustracción | - |
| Multiplicación | * |
| División | / |
| División entera | div |
| Exponenciación | ^ |
| Resto | mod |
Ahora ya se explicó cómo usar Haskell como calculadora. En realidad, Haskell siempre es una calculadora, solo que realmente potente, capaz de manejar no solo números sino también otros objetos como caracteres, listas, funciones, árboles e incluso otros programas (si aún no está familiarizado con estos términos, no debe generar preocupación).
Una vez que haya terminado, para salir de GHCi use :quit (o simplemente :q):
GHCi es un potente entorno de desarrollo. A medida que se avance con el curso, se aprenderá cómo cargar archivos con código fuente en GHCi y evaluar diferentes partes de ellos.
Asumiendo que se aprendieron los conceptos (si no es así, ¡use la página de discusión y ayúdenos a mejorar este Wikilibro!), entonces está listo para el próximo capítulo donde presentaremos algunos de los conceptos básicos de Haskell y haremos nuestras primeras funciones de Haskell.