Haskell

Haskell 12: Listas Intencionales

20 videos

111 minutos

Hola mundo ¿qué tal están? Mi nombre es José y les doy la bienvenida, pues a este nuevo tutorial del curso de Haskell y hoy vamos a ver un tema muy interesante que nos va a ayudar en muchos problemas que son las listas intencionales. Bueno, una lista intencional es una lista que hemos visto en los vídeos anteriores,

pero donde filtramos qué elementos de las listas queremos o no según las condiciones que buscamos. Pero la mejor manera de entenderlo es con un ejemplo, va a quedar mucho más claro, de cómo hacer estos filtros. Voy a explicar un poco la estructura de una lista intencional: bueno, como toda lista, la vamos a llamarla así, lista,

como toda lista tiene que ir dentro de sus corchetes y la estructura es la siguiente: aquí vamos a separar con esta barra vertical, cierto, pues a este lado, este lado de la lista vamos a poner que lista queremos filtrar elementos, bien; así que aquí tendremos la lista de la que filtramos, aquí con una coma, ponemos la condición o las condiciones todas separadas con comas y a este lado de la lista ponemos lo que vamos a mostrar, ok.

Esta es la estructura de todas las listas intencionales, si esto lo capta, ya con esto pueden hacer listas intencionales; pero el orden quizás es un poco confuso, porque tenemos que poner la lista en la mitad, después aquí lo que vamos a mostrar y que condiciones, no, tiene que ser de este orden separado con una barra vertical y con una coma,

cada condición lleva una coma de separación y una cosa más ahora lo que tenemos que hacer a todos los elementos de la lista, le vamos a llamar por un nombre y ese nombre lo vamos a poner así: le vamos a poner una flecha y a este lado como se va a llamar cada elemento de la lista, podemos llamarle que sea x, cierto; entonces esta sí… es la estructura definitiva; lo he hecho a partes para que vayamos agarrando cada idea, no.

Esta es la estructura definitiva, ponemos la lista de la que tenemos todo y ahí ya podemos seleccionar; pero cada elemento de esa lista total se llama x, por ejemplo, después ponemos que mostramos, si queremos mostrar x, simplemente ponemos lo queremos mostrar, pero que cumplan estas condiciones. Así que vamos hacer un ejemplo, aquí, práctico y bueno, pues, lo que voy hacer que todo esto de acá, lo voy a poner aquí para que lo vayamos viendo.

Vaya se me quedo un poco grande. Bueno lo voy a separar más. Lo voy a poner así y ahora ya podemos aquí hacer ejemplos que tengamos de estos casos. Bien, entonces, por ejemplos; vamos a imaginar que queremos sacar todos los números que sean impares, del 1 al 20, por ejemplo, los números solamente impares. Lo podemos hacer así: en primer lugar, vamos a poner la estructura, así tenemos la estructura, no. Y ahora aquí ya podemos listar los números;

tenemos que seleccionar los impares del 1 al 20. Voy hacer una lista con todos los números del 1 al 20, ya hemos visto cómo y a esto lo voy a llamar x, así le pongo la flechita para allá, todo esto se llama x. Ahora, en qué condiciones hemos dicho, pues que sean los números impares, así que esto significa, que el resto de dividir cada elemento de la lista x entre dos, tiene que ser 1 y lo que vamos a mostrar es los números en sí.

Cuales números cumplen esas condiciones, así que simplemente es x, no. Cada elemento de la lista, del 1 al 20, que cumpla con esta condición. Bueno le doy al intro, ahora cuando ejecuto lista, me salen todos los números del 1 al 20, vieron, pues este es el sistema. Con este sistema podemos, pues, podemos hacer cualquier cosa. Ahora vamos a imaginar que no queremos los números impares, queremos los pares;

pues esto sería el 0; pero, pero, no queremos los números, queremos los números multiplicados por dos o por 10, para que se vean. Vamos a multiplicar los números por 10. Pues aquí, en vez de mostrar x, mostramos x por 10 y lo que nos saldrá, todos los números pares, multiplicados por 10, ahí los tienen. En realidad, serían el dos, cuatro, ocho, pero multiplicado por diez, pues 20, 40, 60, 80 y ahí nos va acumulando.

Eso es una intención, con esta lista podemos hacer listados y ponerle condiciones. Pero además de eso, esto se puede incluir en alguna función y poner especificaciones algo más avanzadas. Como el ejemplo ha quedado sencillo y ha quedado bien, vamos a hacer un ejemplo que vaya un poquito más allá, para ya tocar diferentes tipos de niveles. Pues bien, ya en esta lista, que esto ya lo tenemos; voy a poner aquí entonces,

esto lo elimino y voy a crear aquí una función que se llame cuentaCifras, entonces cuentaCifras va a recibir una lista, es lo que va a recibir lista; lo voy a poner así que se va a llamar l y ahora cuentaCifras va a ser igual a lo siguiente: entonces aquí ponemos, la estructura, ya la sabemos cómo es la estructura, ahí y ahora aquí vamos a poner; pues que cada elemento de la lista, que hemos pasado a l, vamos a poner lista,

pues cada elemento de la lista, que recibimos, lo vamos a llamar x y ahora lo que vamos a hacer aquí es decir aquí, decimos: si x es menor que diez, entonces, pues, una cifra (una cifra), sino son dos cifras (dos cifras), vamos a pasar lógicamente números que sean más pequeños que cien, verdad, y aquí, pues simplemente si no queremos, no tenemos que poner condición; pero bueno, vamos a poner una condición; vamos a trabajar con los impares,

ya hemos visto como trabajar con los impares, preguntando si el resto es 1; pero hay otra manera y es simplemente preguntando, con la función odd que es impar en inglés, y ponemos x, no, que este elemento sea x; esto nos devuelve un true o false. Vamos a poner un ejemplo antes de ejecutarlo, si pongo aquí odd de 5, me va a decir true, porque 5 es impar. Si pongo un odd de 8, me dice false, porque es par y no es impar,

así que me va a devolver un false. Así que lo que vamos hacer aquí es: cojamos la lista que mandamos a esta función como parámetro, cada elemento lo convertimos en x, filtramos los impares y luego de los impares decimos si es menor que diez, pues entonces es una cifra (una cifra) si es más son dos cifras (dos cifras), bien. Pues esto lo vamos a guardar, aquí vamos a cargar este archivo, lo cargamos, confía

todo correcto y ahora vamos hacer la llamada: cuentaCifras y le vamos a pasar por parámetros los números, del 1 al 30, ven y aquí me van saliendo de cada número, este sería el 1, este sería el 3, el 5, el 7, el 9 y aquí ya entramos en los otros números, en el 11, el 13, que ya tienen dos cifras. Para poner aquí, yo, que primero se vea el número y que diga, pues que diga, 1, una cifra (una cifra); 3, una cifra; 5, una cifra

tendríamos que mezclar tipos de datos, que hemos dicho que no se puede. Pero por ahora, lo vamos a dejar así para que no entrar en profundidad en conminación de tantas cosas para que se vea. Pero simplemente es un ejemplo e incluso aquí podemos poner un if en la parte de la que queremos mostrar. Bueno este ha sido el vídeo de esta vez,

que para el siguiente vídeo vamos a ver cómo combinar listas intencionales. Así que ya hemos visto cómo es una lista intencional, pero podemos combinar unas con otras. Espero que les esté gustando, pueden darle a like, suscribirse y compartirlo. Y nos vemos en más vídeos. Un saludo.

Si quieres enterarte de los nuevos cursos, suscríbete. No habrá spam, prometido :)

Sobre el autor

foto de jotajotavm
José Javier Villena

jotajota pa los amigos y jota pa los de más cnfianza.

Bio Seria: Analista-Programador en diferentes lenguajes. Tutor PREMIUM de reconocidas plataformas de nivel mundial como CodigoFacilito. Redactor de artículos para Cristalab. Mi canal de YouTube está patrocinado por la editorial ANAYA y LaTostadora. Me gusta explicar con detalle y poner varios ejemplos para que no queden dudas.

Bio Molona: Me presento :) soy informatico, ni frostis d hardware pero muy muxo de programacion, friki a medias o del to segun el dia. Me gusta programar, muxo. Manejo varios lenguajes y tdo lo ke sepa lo comparto x amor al arte. Este no es mi trabjo pero lo ago mejor y con +ganas y calidad que si lo fuera, x eso mismo, xq para mi es divertido. Solo spero al menos algo de agradecimientO!! ;)

Dios, qe gusto haber escrito este parrafo cm me a dao la gana sin pensar en ortografia ni tildes ni historias!!!!!