Bt haskell-1

Download Bt haskell-1

Post on 03-Jul-2015

163 views

Category:

Education

0 download

Embed Size (px)

DESCRIPTION

Introduccin a la programacin funcional en haskell

TRANSCRIPT

<ul><li> 1. Lenguaje deprogramacinfuncional Introduccin a la Computacin - I.T.I. - 1er aoProf. Rosana AlvarezI</li></ul> <p> 2. IntroduccinEl estilo de programacin funcional est basado enexpresiones:- Un programa es un conjunto de definicionesde funciones matemticas- La ejecucin de un programa es la evaluacinde una expresin que contiene funciones definidaspor el usuario.Veremos una breve introduccin a este lenguaje 3. Instalar y comenzar HaskellDescargamos el programa que nos permite ejecutarHaskell en: http://hackage.haskell.org/platform/Elegimos el sistema operativo que corresponde.Para Windows descargamos el archivoHaskellPlatform-2011.2.0.0-setup.exePara ejecutar lo que denominaremos de ahora enms el intrprete de Haskell, accedemos a:Inicio/Todos los programas/HaskellPlataform/winGHCi 4. HaskellLa lnea : Prelude&gt; denominada intrprete decomandos de Haskell, es la que aparece cuando nohay nada definido por el usuario cargado en elambiente de Haskell.Para salir del intrprete se puede usar la opcin delmen, o escribir en el intrprete de comandos.:quit o :q 5. Calculemos con HaskellEscribe, en la lnea de comandos, las siguientesexpresiones:1) 30*12 2) 2^5 3) 24*(67-111)4) 2^(5+3) 5) 23/4 6) sqrt 257) mod 23 4 8) div 23 4Cul es el comportamiento de las funciones div ymod, predefinidas en Haskell?En qu casos son tiles estas funciones?Por ejemplo, queremos extraer dia, mes y ao deuna fecha ingresada como una cadena denmeros: 20112013 6. HaskellPrelude&gt; mod 20112013 100002013 ------ es el aoPrelude&gt; div 20112013 100000020 ------ es el daPrelude&gt; div 20112013 100002011 ------ contiene el da, peroPrelude&gt; mod (div 20112013 10000) 10011 ------ este si es el daPodemos escribir una funcin que nos devuelva el da, omes o ao de una fecha dada, lo haremos en prximasclases. 7. Haskell: predefinidosSe denominan predefinidos a los elementos dellenguaje que estn disponibles para su uso cada vezque ejecutamos Haskell. Estn definidos en un archivode Haskell especial que se denomina PRELUDE (y lasfunciones asociadas a stos).No se pueden realizar definiciones en lnea decomandos, para ello se deber utilizar un archivo detexto ( .hs en ambiente windows) 8. Tipos simples predefinidosen HaskellEl significado del operador :: en Haskell es tienetipo o es de tipo. Se usa para indicar el tipo decualquier expresin pues toda expresin en Haskelltiene tipo.Por ejemplo:4 :: Int, significa que 4 es de tipo Int(81)2) (8&gt;2) &amp;&amp; (4&gt;1)3) (8&gt;2) &amp;&amp; (4 minBound::IntPrelude&gt; maxBound::Int 13. El tipo IntFunciones y operadores(+) :: Int -&gt;Int -&gt; Int. Suma de enteros.(-) :: Int -&gt;Int -&gt; Int. Resta de enteros.(*) :: Int -&gt;Int -&gt; Int. Producto de enteros.(^) :: Int -&gt; Int -&gt; Int. Operador potencia, el exponente debeser naturaldiv :: Int -&gt; Int -&gt; Int. Cociente de la divisin entera.mod :: Int -&gt; Int -&gt; Int. Resto de la divisin entera.abs :: Int -&gt; Int. Valor absolutoeven:: Int -&gt; Bool. Dado un entero indica si es par.odd :: Int -&gt; Bool. Dado un entero indican si es impar. 14. El tipo CharUn valor de tipo Char representa un caracter, es decir:una letra, un dgito, un signo de puntuacin, etc. Unvalor constante de tipo Char se escribe siempre entrecomillas simples. a denota la letra a minscula 1 denota al carcter correspondiente al dgito1. No confundir con 1 de tipo Int. ? denota al smbolo correspondiente al signode interrogacin. 15. El tipo FloatSubconjunto de un intervalo de los nmeros reales.Hay dos modos de escribir valores reales:La notacin habitual: 1.35 15.345 1.0 1La notacin cientfica: 1.5e 7 1.5e 17Funciones y operadores del tipo FloatAlgunas de las funciones y operadores predefinidospara este tipo son:(+) :: Float -&gt;Float -&gt; Float. Suma de reales.(-) :: Float -&gt;Float -&gt; Float. Resta de reales.(*) :: Float -&gt;Float -&gt; Float. Producto de reales.(^) :: Float -&gt; Int -&gt; Float. Potencia, base real yexponente natural . 16. El tipo DoubleSe trata de un subconjunto de un intervalo de losnmeros reales.El subconjunto es mayor que el correspondiente al tipoFloat y las aproximaciones mas precisas.Todas las operaciones disponibles para el tipo Floatestn tambin disponibles para el tipo Double. 17. El comando :typePrelude&gt; :type Prelude&gt; :t Nos devuelve el tipo de una expresin.Es til para saber si el tipo de una expresin quequeremos usar se corresponde con lo quepensamos. 18. Verificar en Haskell:1. :type 'a'2. :type "abcdf"3. :type True4. :type 4 Mayor que &gt;= Mayor o igual que&lt; Menor que</p>