Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Fecha: _____/_______/______
Docente: Mg. David Quevedo Velasco
Apellidos y Nombres:
____________________________________________
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.
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.
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