Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 1 votos - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Paradigmas] ¿Como "devolver" una lista sin elementos repetidos?
Autor Mensaje
aaajfabio Sin conexión
Profesor del Modulo A
Retomando la carrera
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 260
Agradecimientos dados: 18
Agradecimientos: 18 en 7 posts
Registro en: Sep 2009
Mensaje: #1
[Paradigmas] ¿Como "devolver" una lista sin elementos repetidos? Dudas y recomendaciones Paradigmas de Programación

generosQueToca(Musico,Generos) :- findall(Genero,cancion(_,Musico,Genero,_),Generos).

?- generosQueToca(beto,Generos).
Generos = [pop, pop, pop].



Quiero que me "devuelva"


Generos = [pop].



Con un setof en lugar del findall andaría pero en el caso:


?- generosQueToca(mozart,Generos).


con setof me "devuelve"

Generos = [clasico]
Generos = [rock]



y quiero que me devuelva:

Generos =[clasico, rock].



No se como hacerlo por favor es urgente xD

Gracias
(Este mensaje fue modificado por última vez en: 07-10-2011 12:05 por aaajfabio.)
07-10-2011 12:04
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
gusti89 Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 89
Agradecimientos dados: 8
Agradecimientos: 1 en 1 posts
Registro en: Apr 2009
Mensaje: #2
RE: [Paradigmas] ¿Como "devolver" una lista sin elementos repetidos?
No recuerdo muy bien pero no tenias que hacer algo asi como :

generosQueToca(Musico,Generos) :-
esMusico(Musico),
findall(Genero,cancion(_,Musico,Genero,_),Generos).

??

Fijate eso, espero no haber mandado fruta

esMusico(M):- "aca fijate tu base de conocimientos, ponele qe sea algo asi como musico(M). "
(Este mensaje fue modificado por última vez en: 07-10-2011 14:09 por gusti89.)
07-10-2011 14:08
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
aaajfabio Sin conexión
Profesor del Modulo A
Retomando la carrera
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 260
Agradecimientos dados: 18
Agradecimientos: 18 en 7 posts
Registro en: Sep 2009
Mensaje: #3
RE: [Paradigmas] ¿Como "devolver" una lista sin elementos repetidos?
(07-10-2011 14:08)gusti89 escribió:  No recuerdo muy bien pero no tenias que hacer algo asi como :

generosQueToca(Musico,Generos) :-
esMusico(Musico),
findall(Genero,cancion(_,Musico,Genero,_),Generos).

??

Fijate eso, espero no haber mandado fruta

esMusico(M):- "aca fijate tu base de conocimientos, ponele qe sea algo asi como musico(M). "

No me refiero a eso... eso es un predicado generador, pero no me sirve para que la lista Generos, no tenga elementos repetidos.
07-10-2011 14:19
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Anirus Sin conexión
Super Moderador
Sin estado :)
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.163
Agradecimientos dados: 81
Agradecimientos: 232 en 78 posts
Registro en: Nov 2009
Mensaje: #4
RE: [Paradigmas] ¿Como "devolver" una lista sin elementos repetidos?
Te sirve esto?



sinRepeticion([X],[X]).
sinRepeticion([X|XS],[X|ListaSinRepetidos]):- not(member(X,XS)),sinRepeticion(XS,ListaSinRepetidos).
sinRepeticion([X|XS],ListaSinRepetidos):- member(X,XS),sinRepeticion(XS,ListaSinRepetidos).


generosQueToca(Musico,GenerosSinRepetidos) :- findall(Genero,cancion(_,Musico,Genero,_),Generos),sinRepeticion(Generos,GenerosSinRepetidos).



(Este mensaje fue modificado por última vez en: 07-10-2011 15:03 por Anirus.)
07-10-2011 14:59
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
aaajfabio Sin conexión
Profesor del Modulo A
Retomando la carrera
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 260
Agradecimientos dados: 18
Agradecimientos: 18 en 7 posts
Registro en: Sep 2009
Mensaje: #5
RE: [Paradigmas] ¿Como "devolver" una lista sin elementos repetidos?
Si anirus gracias, pude hacerlo pero tu solucion es mas simple!
07-10-2011 16:00
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
gusti89 Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 89
Agradecimientos dados: 8
Agradecimientos: 1 en 1 posts
Registro en: Apr 2009
Mensaje: #6
RE: [Paradigmas] ¿Como "devolver" una lista sin elementos repetidos?
Ahh cierto, era con sinRepetidos! lo primero qe se me vino a la mente era eso qe te dije, perdon!!
07-10-2011 16:45
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




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