C贸digo de variables iguales en Lista!!!!!
Chicos miren, implement茅 este c贸digo, lo que quiero que haga es que verifique si en una lista hay al menos dos elementos que
son iguales, a la vez que encuentre al menos dos iguales quiero que salga y deje a la variable C igual a 1.
Pero me est谩 dando error cuando le doy compilar,alquien me podr铆a orientar en qu茅 tengo mal en el c贸digo. Aqu铆 se los dejo
comentariado para que vean que pretendo en cada l铆nea. El predicado Verifica_iguales le paso una lista y una variable C en la
que debe devolver 1 si encuentra o 0 sino encuentra. Ay煤denme soy nueva en prolog!!!
Gracias de antemano.
Verifica_iguales([],0). % Si recorri贸 la lista completa y no hay iguales entonces C=0
Verifica_iguales(L,1):-!. % Si C = 1, encontr贸 algo, entonces sale.
Verifica_iguales([X/L],C):-
pertenece(X,L,C), %Verif igual, Dev C=1 encontr贸, C=0 no encontr贸.
Busca_iguales(L,C). %LLama recurs a la funci贸n hasta que C=1 o L=[].
pertenece(X,[],0). %Si recorri贸 toda la lista y no encontr贸, C=0.
pertenece(X,[X|_],1):-!. %comp a X con c/a elemt de la lista, si encuen C=1 y sale.
pertenece(X,[_|L1],C) :- pertenece(X,L1,C). %Sino, C sigue sin valor, y llamo a la
%funci贸n recursivamente con el resto de los elementos de la lista.
El error que me da al compilar es:
! ----------------------------------------
! Error 23 : Type Error
! Goal : def([],2,_30748)
Aborted
| ?-
son iguales, a la vez que encuentre al menos dos iguales quiero que salga y deje a la variable C igual a 1.
Pero me est谩 dando error cuando le doy compilar,alquien me podr铆a orientar en qu茅 tengo mal en el c贸digo. Aqu铆 se los dejo
comentariado para que vean que pretendo en cada l铆nea. El predicado Verifica_iguales le paso una lista y una variable C en la
que debe devolver 1 si encuentra o 0 sino encuentra. Ay煤denme soy nueva en prolog!!!
Gracias de antemano.
Verifica_iguales([],0). % Si recorri贸 la lista completa y no hay iguales entonces C=0
Verifica_iguales(L,1):-!. % Si C = 1, encontr贸 algo, entonces sale.
Verifica_iguales([X/L],C):-
pertenece(X,L,C), %Verif igual, Dev C=1 encontr贸, C=0 no encontr贸.
Busca_iguales(L,C). %LLama recurs a la funci贸n hasta que C=1 o L=[].
pertenece(X,[],0). %Si recorri贸 toda la lista y no encontr贸, C=0.
pertenece(X,[X|_],1):-!. %comp a X con c/a elemt de la lista, si encuen C=1 y sale.
pertenece(X,[_|L1],C) :- pertenece(X,L1,C). %Sino, C sigue sin valor, y llamo a la
%funci贸n recursivamente con el resto de los elementos de la lista.
El error que me da al compilar es:
! ----------------------------------------
! Error 23 : Type Error
! Goal : def([],2,_30748)
Aborted
| ?-