Cómo eliminar duplicados en Prolog
Prolog es lenguaje declarativo usado en IA y lingüística. A diferencia de los procedurales, los programas son reglas/ecuaciones, no pasos. El siguiente código elimina duplicados de una lista.
Paso 1
Abre editor (Bloc de notas) y guarda como remove_dups.pl.
Paso 2
Copia el código (sin las barras):
% remove_dups(+Lista, -NuevaLista):
% NuevaLista es Lista sin duplicados.
remove_dups([], []).
remove_dups([Primero | Resto], NuevaResto) :- member(Primero, Resto), remove_dups(Resto, NuevaResto).
remove_dups([Primero | Resto], [Primero | NuevaResto]) :- \+ member(Primero, Resto), remove_dups(Resto, NuevaResto).
Tres reglas:
1. Lista vacía → retorna vacía.
2. Si el primer elemento está en el resto → es duplicado, quítalo y recursión con el resto.
3. Si no está en el resto → consérvalo y recursión.
Paso 3
Guarda (Ctrl+S).
Consejo
C/Java usan bucles iterativos; Prolog y lenguajes funcionales usan recursión (llamar a la misma función con subconjuntos menores). Algunos problemas son más fáciles con recursión, aunque cuesta aprenderla si vienes de bucles.
- ·Cómo eliminar duplicados en Palm Treo 700wx
- ·Cómo eliminar un canal de la lista de favoritos del DVR
- ·Cómo eliminar canciones duplicadas en iPhone desde iTunes
- ·Cómo eliminar canciones duplicadas en el iPod
- ·Cómo eliminar canciones duplicadas del iPhone
- ·Cómo quitar su número de una lista de llamadas
- ·Cómo quitar mi número de teléfono de una lista de llamadas
- ·Cómo eliminar el proceso wuauclt.exe (Windows Update)
