Está en la página 1de 3

PROGRAMACION LOGICA Y FUNCIONAL

Fecha: _____/_______/______
Docente: Mg. David Quevedo Velasco

Apellidos y Nombres:
____________________________________________

TEMA: Funciones internas de Haskell con Listas

I. COMPETENCIAS
Durante el desarrollo de la práctica el estudiante:
 Entiende y utiliza adecuadamente las funciones internas para Listas de Haskell.
 Ejecuta las funciones internas en el prompt de Haskell.

II. REQUISITOS DE DESARROLLO


Para realizar las prácticas el estudiante debe:
 Conocer y comprender las funciones internas para listas que vienen preconfiguradas
en el Haskell.
 Conocer el manejo del L. P. Haskell en su implementación GHC.

III. EJEMPLOS
1. Digitar en el GHC todos los ejemplos vistos sobre las funciones internas para Listas
de Haskell.
2. Prelude> 'hola':"amor"
3.
4. <interactive>:9:1:
5. Syntax error on 'hola'
6. Perhaps you intended to use -XTemplateHaskell
7. Prelude> 'a':"amor"
8. "aamor"
9. Prelude> 2:[5,90]
10. [2,5,90]
11. Prelude> drop10[9,6,5,4,1,3,8,7,5,2,1,5,33]
12.
13. <interactive>:12:1:
14. Not in scope: `drop10'
15. Perhaps you meant `drop' (imported from Prelude)
16. Prelude> drop 10 [9,6,5,4,1,3,8,7,5,2,1,5,33]
17. [1,5,33]
18. Prelude> 10 'elem' [9,6,5,4,1,3,8,7,5,2,1,5,33]
19.
20. <interactive>:14:4:
21. Syntax error on 'elem'
22. Perhaps you intended to use -XTemplateHaskell
23. Prelude> 10 'elem'[9,6,5,4,1,3,8,7,5,2,1,5,33]
24.

1
25. <interactive>:15:4:
26. Syntax error on 'elem'
27. Perhaps you intended to use -XTemplateHaskell
28. Prelude> 10 'elem'[9,6,5,4,1,3,8,7,5,2]
29.
30. <interactive>:16:4:
31. Syntax error on 'elem'
32. Perhaps you intended to use -XTemplateHaskell
33. Prelude> 10 'elem' [9,6,5,4,1,3,8,7,5,2,1,5,10]
34.
35. <interactive>:17:4:
36. Syntax error on 'elem'
37. Perhaps you intended to use -XTemplateHaskell
38. Prelude> 10 'elem' [9,6,5,4,1,3,8,7,5,10]
39.
40. <interactive>:18:4:
41. Syntax error on 'elem'
42. Perhaps you intended to use -XTemplateHaskell
43. Prelude> ``
44.
45. <interactive>:19:1: parse error on input ``'
46. Prelude> 10 `elem`[9,6,5,4,1,3,8,7,5,10]
47. True
48. Prelude> head "lucar"
49. 'l'
50. Prelude> init "listas"
51. "lista"
52. Prelude> init "sop"
53. "so"
54. Prelude> legth "monopolio"
55.
56. <interactive>:24:1:
57. Not in scope: `legth'
58. Perhaps you meant `length' (imported from Prelude)
59. Prelude> length "monopolio"
60. 9
61. Prelude> reverse['c','d','s','s','s']
62. "sssdc"

IV. ACTIVIDAD
4.1. Realizar 3 ejemplos de cada función vista en clase.

4.2. Investigue sobre otras funciones para listas que tenga el Haskell. Mencione las 5
que consideren más útiles. Ponga 2 ejemplos de c/u.

 !!: Retorna el elemento ubicado en la posición n, empezando desde cero.


 head: Retorna el primer elemento de la lista.
 last: Retorna el último elemento de la lista.
 tail: Retorna todos los elementos menos el primero.

2
 init: Retorna todos los elementos menos el último.
 length: Retorna el número de elementos de la lista.
 take: Retorna los primeros n elementos de la lista.
 drop: Retorna los elementos de la lista, excepto los n primeros.
 takeWhile : Más potente que take pues puede retornar ciertos tipos de datos indicados.
 dropWhile: Más potente que drop pues puede retornar ciertos tipos de datos indicados.
 reverse: Invierte una lista.
 concat: Toma ciertos elementos o listas y las retorna en una sola lista.
 words: Retorna una lista de strings de acuerdo a los espacios en blanco de un string.
 unwords: Retorna un string de una lista de strings.
 elem: Retorna si un elemento esta o no en la lista
 notElem: Lo opuesto a elem.
Ejemplos:

Main> [“maritza”,”celeste”,”nadia”,”maria”,”julia”]!!1
“celeste”
Main> head [11,1,1985,22,8,2007]
11
Main> last [11,1,1985,22,8,2007]
2007
Main> tail [11,1,1985,22,8,2007]
[1,1985,22,8,2007]
Main> init [11,1,1985,22,8,2007]
[11,1,1985,22,8]
Main> take 2 [11,1,1985,22,8,2007]
[11,1]
Main> length [11,1,1985,22,8,2007]
6
Main> drop 2 [11,1,1985,22,8,2007]
[1985,22,8,2007]
Main> takeWhile (<=15) [1..30]
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
Main> dropWhile (<=15) [1..30]
[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]
Main> reverse [11,1,1985,22,8,2007]
[2007,8,22,1985,1,11]
Main> concat [“open”,”source”,”solutions”]
“opensourcesolutions”
Main> words ” I like to use Debian GNU/Linux”
[“I”,”like”,”to”,”use”,”Debian”,”GNU/Linux”]
Main> unwords [“I”,”like”,”to”,”use”,”Debian”,”GNU/Linux”]
“I like to use Debian GNU/Linux”
Main> elem ‘t’ [‘a’,’f’,’r’,’h’,’t’]
True
Main> notElem ‘t’ [‘a’,’f’,’r’,’h’,’t’]
False

También podría gustarte