Haskell es un lenguaje puramente funcional de propósito general. Y aunque no se pretende desarrollar un Core bancario en el, si que puede servir como medio de entrenamiento mental, o mera iniciativa de ampliar conocimiento. Para otros puede valer exclusivamente en la superacion de cierta asignatura de la universidad.

 Las características más interesantes de Haskell incluyen el soporte para tipos de datos y funciones recursivas, listas, tuplas, guardas y calce de patrones. La combinación de las mismas pueden resultar en algunas funciones casi triviales cuya versión en lenguajes imperativos pueden llegar a resultar extremadamente tediosas de programar.

  El trabajar con Haskell se ha de hacer siempre pensando en un buen editor, ya que el numero de parentesis que podemos implementar en ciertas operaciones puede llegar a ser dificil de manejar mentalmente. Por lo tanto, mejor buscar un Ultraedit, Notepad++ en Windows, o un eMacs, Vim o mc en GNU/Linux.

   El compilador a usar es el hugs, en varias versiones, de las cuales vamos a destacar:

  • WinHugs para entornos WIn32 (descargar)

  • Hugs 98 para GNU/Linux (descargarapt-get install hugs)

  Y para que todo se mas afable (dentro de lo que Haskell permite) para configurar el editor lo haremos con:

:set +E__

  Como por ejemplo :

:set +Emcedit
:set +Eemacs
:set +Evim

 Para mas comandos relativos al compilador :

:load    load modules from specified files
:load               clear all files except prelude
:also    read additional modules
:reload             repeat last load command
:edit     edit file
:edit               edit last module
:module     set module for evaluating expressions
              evaluate expression
:type         print type of expression
:?                  display this list of commands
:set       set command line options
:set                help on command line options
:names [pat]        list names currently in scope
:info        describe named objects
:browse    browse names exported by
:main     run the main function with the given arguments
:find         edit module containing definition of name
:cd dir             change directory
:gc                 force garbage collection
:version            print Hugs version
:quit               exit Hugs interpreter