Haskell

Páginas: 19 (4675 palabras) Publicado: 2 de marzo de 2014
Guía Rápida de Haskell

Cadenas

Esta guía rápida abarca los elementos fundamentales del lenguaje Haskell: sintaxis, palabras clave
y otros elementos. Se presenta como un archivo
ejecutable de Haskell y también como un documento para impresión. Cargue la fuente en su intérprete favorito para jugar con los ejemplos de
código mostrados.

Sintaxis Básica
Un comentario de una sola líneacomienza con ‘--’
y se extiende hasta el final de la línea. Los comentarios de varias líneas comienzan con ’{-’ y se
extienden hasta ’-}’. Los comentarios pueden ser
anidados.
Los comentarios antes de las definiciones de
función deben comenzar con ‘{- |’ y los que están junto a los tipos de parámetros con ‘-- ^’ para
que sean compatibles con Haddock, un sistema
para documentar código en Haskell.Palabras Reservadas
Las siguientes palabras están reservadas para
Haskell. Es un error de sintaxis darle a una variable o a una función uno de estos nombres.

case
class
data
deriving
do
else
if









c 2009 Justin Bailey.

Cadenas en varias líneas
Normalmente, es
un error de sintaxis si una cadena contiene caracteres de fin de línea. Eso es, esto es un errorde
sintaxis:

string1 = "My long
string."

Comentarios









• "abc" – Cadena Unicode string, azúcar sintáctica de ['a','b','c'].
• 'a' – Un solo caracter.

import
in
infix
infixl
infixr
instance
let








of
module
newtype
then
type
where

Se pueden emplear barras diagonales inversas
(‘\’) para hacer “escape” de un fin de línea:

Códigosde escape
Los siguientes códigos de
escape pueden ser utilizados en caracteres o cadenas:
• \n, \r, \f, etc. – Los códigos estándar para
fin de línea, retorno de carro, avance de
línea, etc.
• \72, \x48,
texto110 – Un caracter con el valor 72 en decimal, hexadecimal y octal, respectivamente.
• \& – El caracter de escape “null”, es utilizado
para que los códigos de escape numéricos puedanaparecer junto de las literales
numéricas. Es equivalente a “” y por lo tanto
no puede ser utilizado en literales de caracter.

Números
string1 = "My long \
\string."
El área entre las barras diagonales inversas es ignorada. Los fines de línea en la cadena deben ser
representados explícitamente:

string2 = "My long \n\
\string."
Eso es, string1 evalúa como

My long string.
Mientrasstring2 evalúa como:

My long
string.
1







1 – Entero o valor de punto flotante.
1.0, 1e10 – Valor de punto flotante.
0o1, 0O1 – Valor octal.
0x1, 0X1 – Valor hexadecimal.
-1 – Número negativo; el signo de menos
(“-”) no puede ir separado del número.

Enumeraciones
• [1..10] – Lista de números – 1, 2, . . ., 10.
• [100..] – Lista infinita de números – 100,
101, 102, . .. .
• [110..100] – Lista vacía; los rangos solamente avanzan hacia adelante.
• [0, -1 ..] – Enteros negativos.
• [-110..-100] – Error de sintaxis; necesita
[-110.. -100] por los negativos.
• [1,3..99], [-1,3..99] – Lista de 1 a 99, de
2 en 2; y de -1 a 99, de 4 en 4.

jgbailey@codeslower.com

De hecho, se puede usar cualquier valor que esté
en la clase Enum:
• ['a' .. 'z'] – Lista ofcaracteres – a, b,
. . ., z.
• [1.0, 1.5 .. 2] – [1.0,1.5,2.0].
• [UppercaseLetter ..] – Lista de valores
GeneralCategory (en Data.Char).

Listas & Tuplas
• [] – Lista vacía.
• [1,2,3] – Lista de tres números.
• 1 : 2 : 3 : [] – Forma alterna de escribir
listas usando “cons” (:) y “nil” ([]).
• "abc" – Lista de tres caracteres (las cadenas
son listas).
• 'a' : 'b' : 'c' : [] – Listade caracteres
(lo mismo que "abc").
• (1,"a") – Tupla de dos elementos, un
número y una cadena.
• (head, tail, 3, 'a') – Tupla de cuatro elementos, dos funciones, un número y un caracter.

Regla “Layout”, llaves y punto y comas
Se puede escribir Haskell utilizando llaves y punto
y comas, igual que en C. Sin embargo, nadie lo
hace. En lugar de eso se emplea la regla “layout”,
donde se...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Haskell
  • haskell
  • programas de haskell
  • Resumen Haskell
  • Haskell
  • Haskell
  • Haskell
  • Haskell

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS