Herramientas de usuario

Herramientas del sitio


introalg:taller1

¡Esta es una revisión vieja del documento!


Clase 1

  • Introducción al uso de Hugs
  • Como escribir programas Haskell

Hugs es un intérprete del lenguaje funcional puro Haskell. Durante este taller vamos a utilizarlo para escribir, probar y utilizar los programas funcionales que se dan en el teórico.

A Hugs se lo invoca desde la línea de comandos o picando sobre el ícono en nuestro entorno gráfico. Una vez que el intérprete esta activo, la pantalla se presenta con un prompt a la espera de expresiones a ser evaluadas o commandos.

[nicolasw@azul Taller]$ hugs
__   __ __  __  ____   ___      _________________________________________
||   || ||  || ||  || ||__      Hugs 98: Based on the Haskell 98 standard
||___|| ||__|| ||__||  __||     Copyright (c) 1994-2005
||---||         ___||           World Wide Web: http://haskell.org/hugs
||   ||                         Report bugs to: hugs-bugs@haskell.org
||   || Version: March 2005     _________________________________________

Haskell 98 mode: Restart with command line option -98 to enable extensions

Type :? for help
Hugs.Base>

En este modo Hugs se convierte en una calculadora esperando que se introduzca una expresión para luego evaluarla y volver a pedir una expresión (lazo leer-evaluar-imprimir). Gracias al preludio standard tenemos muchas funciones ya definidas.

Hugs.Base> 21+21
42
Hugs.Base> 2*4 == 10 `div` 5 && True
False
Hugs.Base> [2,3,5,7,11]++[1,2]
[2,3,5,7,11,1,2]
Hugs.Base> reverse "dabale arroz a la zorra el abad"
"daba le arroz al a zorra elabad"

Este ciclo continua indefinidamente hasta que pidamos la salida del intérprete con CTRL-D o con el comando

Hugs.Base> :q
[Leaving Hugs]
[nicolasw@azul Taller]$

Para poder dar nuevas definiciones y/o funciones necesitamos escribir un programa funcional o script Haskell. Un programa funcional es un archivo con terminación .hs donde se escriben en texto plano todas las definiciones que conforman el programa funcional.

A manera de ejemplo realicemos un ciclo de creación-carga-prueba-modificacion-recarga, con el Ejercicio 8.3 del apunte Extracto del Cálculo de Programas

introalg/taller1.1146515516.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)