1 / 8

Tipos básicos usados en CLEAN.

Tipos básicos usados en CLEAN. Funciones predefinidas en las listas Se puede definir rangos en las listas. Ejemplo: [1..10] que es la lista del 1 hasta el 10 El operador ++ concatena dos listas. Por ejemplo: Start = [1,2] ++ [3,4,5]  resulta, [1,2,3,4,5]

Download Presentation

Tipos básicos usados en CLEAN.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tipos básicos usados en CLEAN. • Funciones predefinidas en las listas Se puede definir rangos en las listas. Ejemplo: [1..10] que es la lista del 1 hasta el 10 El operador ++ concatena dos listas. Por ejemplo: Start = [1,2] ++ [3,4,5]  resulta, [1,2,3,4,5] También se pueden usar en las listas la función booleana. Porejemplo: Start = [1<2, 2<3, 1==0] resulta, [True.True,False]

  2. Tipos básicos usados en CLEAN. • Funciones predefinidas en las listas Start= take 3 [2..10]  resulta [2,3,4] Otras funciones: Start = sum [1..10] suma todos los elementos de la lista Start = reverse [1..10]  resulta [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] Start = reverse (sort [1,6,2,9,2,7]) (ordena mi lista y luego invierte la lista resultante)  resulta [9,7,6,2,2,1]

  3. Tipos básicos usados en CLEAN. • Funciones predefinidas en las listas En una lista es posible definir dos función que son de mucha utilidad, importando la librería StdList, es posible usar: hd”head” el cual me exporta la cabeza de la lista, es decir, el primer elemento tl “tail” el cual exporta el cuerpo de una lista.

  4. Definición local Las constantes locales, • se definen con la palabra reservada “where”, el cual son definidas a nivel local lo que significa que solo tienen un significado dentro de la función. Mifuncion a = a + b where b = 1 Start = Mifuncion 1 2

  5. Módulos y tipos de datos abstractos Clean es un lenguaje modular, estosignificaqueestacompuestos de modulos. Cada modulo posee un uniconombre. En Clean existen 2 tipos de módulos llamados: • Modulo de Implementación (.Icl) • Modulo de definición (.Dcl) Los tipos de datos abstractos consisten en “ocultar la definición real de una función”. El “modulo de implementación”, el cual es el equivalente a mi archivo fuente. El “modulo de definición” se utiliza paraexportar una función, y poder usarla en un modulo de implementacióndiferente. En el modulo de definicion solo se mostrara una parte de la funcion. A esta información ocultada se llamara Abstract data types.

  6. Definición recursión • Una función puede ser utilizada en su propia definición. Se le llamará, una función recursiva. Por Ejemplo fac n | n==0 = 1 | n>0 = n * fac (n-1)

  7. Enlace Estático de tipos a variables • Clean posee un enlace estático de tipos a variables este puede ser tanto como implícito como explicito. • Para el caso implícito: Todas las operaciones en Clean poseen un tipo, es decir, los operandos de una operación son del mismo tipo, en consecuencia su resultado será del mismo tipo (unificación). En estos casos no es necesario definir una “declaración de tipos”. increment n = n + 1 Start = increment 1  2

  8. Definición recursión • En el caso explicito, “declaración de tipos”. son importantes al exportar una función para ser usadas en otro modulo, ya que sin ellas no podríamos exportar la función y no podríamos saber su tipo. increment :: Int -> Int increment n = n + 1 Start = increment 8 9

More Related