Written by: on 25/10/2009 @ 19:41

  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 (descargar apt-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<nombreDelEditor>

  Como por ejemplo :

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

 Para mas comandos relativos al compilador :

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

 

 

Catogories: GNU/Linux

Leave a Reply