Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Consullta Haskell] Lista de tuplas
Autor Mensaje
Adolfito Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 111
Agradecimientos dados: 14
Agradecimientos: 12 en 6 posts
Registro en: Nov 2012
Mensaje: #1
[Consullta Haskell] Lista de tuplas Ejercicios Paradigmas de Programación
Hola tengo una duda en cuanto al manejo de una lista en la q cada elemento es una tupla.

Por ejemplo si tengo la lista : [('a',1,2,3),('b',4,5,6),('c',7,5,8)]
y quisiera retornar otra lista con el primer elemento de las tuplas q tienen un 5 en su tercer elemento
en este caso seria ['b','c']
Como se hace para trabajar con los elementos de las tuplas que se encuentran en la lista? O se usa la lista ?

Muchas gracias
(Este mensaje fue modificado por última vez en: 22-04-2014 14:30 por Adolfito.)
21-04-2014 18:47
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
pablit Sin conexión
Secretario General
Ex- Don Ramón
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 939
Agradecimientos dados: 189
Agradecimientos: 770 en 96 posts
Registro en: Apr 2010
Mensaje: #2
RE: [Consullta Haskell] Lista de tuplas
Creo que te expresaste mal al decir "en este caso sería ['a', 'c']", ya que ni la tupla de 'a' ni la tupla de 'c' tienen un 5 en su tercer elemento...

En fin, tal vez puede ayudarte esto:
laLista = [('a', 1,2,3), ('b',4,5,6), ('c',7,5,8)]
elTercerElementoDeLaTupla (_, _, x, _) = x==5
f lista = filter elTercerElementoDeLaTupla lista


Probás con:
f laLista

Y te devuelve:
[('b',4,5,6),('c',7,5,8)]



Uso el mágico filter, que recibiendo una función (que toma un elemento de la lista que vas a ingresar y devuelve un booleano) y una lista, filtra "las que son True".

Después, lo que necesitarías, es agregar otra función onda elPrimerElementoDeLaTupla que: reciba esa lista que devuelve (la función que yo definí como) f y que devuelva solamente la lista de los primeros elementos, que son chars.


ANÁLISIS MATEMÁTICO I: Finales (2010-2016).
ÁLGEBRA Y GEOMETRÍA ANALÍTICA: Finales (2011-2016).
FÍSICA I: Ejercicios resueltos.
ECONOMÍA: Finales (2011-2016) y Ejercicios de Final resueltos.
LEGISLACIÓN: Resumen.

ARQUITECTURA DE COMPUTADORES: Resumen con Apuntes.
ANÁLISIS DE SISTEMAS: Resumen.
(Este mensaje fue modificado por última vez en: 21-04-2014 19:37 por pablit.)
21-04-2014 19:31
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
mllanos Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: Apr 2014
Mensaje: #3
RE: [Consullta Haskell] Lista de tuplas
Cuando quieras operar en una lista podes usar funciones de orden superior (map, filter...).

En este caso tendrías que filtrar de la lista a todos las tuplas de las cuales el 4to elemento sea 5, y de la lista resultante obtener el primer elemento.



eval x = map f $ filter c x

c (_, _, _, d) = d == 5

f (a, _, _, _) = a



Saludos.
21-04-2014 20:49
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Jess Sin conexión
Campeon del cubo Rubik
No sé qué estado poner (?)
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 183
Agradecimientos dados: 41
Agradecimientos: 24 en 22 posts
Registro en: Oct 2011
Facebook Twitter
Mensaje: #4
RE: [Consullta Haskell] Lista de tuplas
Lo que dijeron arriba está bien pero te devuelve las tuplas enteras. Si querés que devuelva solo el primer elemento de las tuplas que cumplen esa condición, además tendrías que hacer un map con la lista que te dio la función que hizo pablit. Usando la función f de arriba como auxiliar, la función principal te quedaría así:


devolverPrimerosElementosDeLaLista lista = map primerElemento (f lista)
primerElemento (x,_,_,_) = x


-Sálvala, sálvala -exclamó caído de rodillas, entrecruzando los dedos de las manos sobre el pecho, alzando suplicante la mirada, corriendo a chorros el llanto de sus ojos-, Dios, Dios mío, Dios eterno... sí, creo en ti, creo en todo, con tal de que me la salves!... Y Dios no se la salvó.
21-04-2014 20:54
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Adolfito Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 111
Agradecimientos dados: 14
Agradecimientos: 12 en 6 posts
Registro en: Nov 2012
Mensaje: #5
RE: [Consullta Haskell] Lista de tuplas
Muchas gracias a todos, ahora entendi como se hace. Lo q qeria era q devuelva el primer elemento de la tupla como dijo Jess
22-04-2014 14:23
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.