Tarea 8

Haskell

Haskell es un lenguaje funcional puro, no estricto y fuertemente tipificado.

  • Puro = transparencia referencial:
  • No estricto = usa un orden no aplicativo
  • Tipificación fuerte = los elementos del lenguaje utilizables están clasificados en distintas categorías o tipos.

programa consiste en definiciones de funciones.

  • Declararla: indicar el tipo
  • Definirla : dar el metodo de computo

Los principales tipos de datos b´asicos predefinidos en Haskell son: Char, Int, Integer ,Float, Double y Bool.

Sintaxis

TIPO SYNTAXIS EJEMPLO
Comentarios Para realizar comentarios de una linea se utilizan dos guiones consecutivos"--", así se marca que toda la línea será de comentario y para comentarios de mas de una linea se utiliza {- ... -} -- Esta línea es un comentario
{- Esto tambien
es un comentario -}
Operaciónes Es posible escribir varias expresiones matemáticas directamente en ghci y obtener un resultado. Prelude Prelude> 3 * 5
15
Prelude> 4 ^ 2 - 1
15
Cadenas Las cadenas van entre "comillas dobles." Puede concatenarlas con ++ Prelude> " Hello "
Prelude> "Hello" ++ ", Haskell"
"Hello, Haskell"
Numeros
  • 1-Entero o valor flotante
  • 1.0 , 1e10 - Valor punto flotante
  • 0o1, 001 - Valor octal
  • 0x1, 0X1 - Valor hexadecimal
  • -1 valor negativo (el signo de - no puede ir separado del numero)
  • 1
  • 1.0
  • 0o1
  • 0x1
  • -2
Listas y tuplas
  • [] - Lista vacia
  • [1,2,3] - Lista de numeros
  • "A,B,C" - Listas de tres caracteres
  • (1,"a") - Tupla de dos elementos
**[1,2,3]
**"A,B,C"

Simbolos

Aritmeticos

+Suma
-resta
*Multiplicación
/División
absValor absoluto del argumento
^Exponencial
signumsigno
maxMaximo de sus argumentos
minMinimos de sus argumentos
sqrtraiz cuadrada del argumento no negativo
modmodulo

Relacionales

==Igual que
> Mayor que
>= Mayor igual que
< Menor que
<= Menor igual que
distinto de

Manipular listas

:insercion de listas
++concatenacion de listas

Funciones booleanas

&&Devuelve #f tan pronto uno de sus argumentos es falso
||Devuelve #t tan pronto uno de sus argumentos es verdadero
notNegación de un valo booleano

Palabras reservadas

case
where
of
then
else

Esqueleto de un programa en Haskell

        module Main where 
        addition a b = a + b 
        main :: IO ()
         main = do let z = addition 5 3
             putStrLn $ "The result is: " ++ show z

       

Aplicación para ejecutar y editar codigo Haskell

--GHCi---

. Si quieres aprender Haskell o programar de forma cómoda, la solución más habitual es GHCi, un entorno de desarrollo interactivo y listo para usar se puede obtener desde Haskell Plataform

Una vez completada la instalación, deberías poder iniciar el entorno de desarrollo interactivo cuando lo desees con el comando “ghci” desde la línea de comandos de tu sistema:

OTROS

Paradigma al que pertenece

Haskell es un lenguaje Funcional, no estricto, modular, fuertemente tipificado

Programa en Haskell

Este programa recibe un numero entero y devuelve el factorial del mismo

            
            fact::Int->Int
            fact 0=1
            fact n=n*fact(n-1)