PROLOG: Intersección entre dos listas

Este programa encuentra la intersección de dos listas (intersección de conjuntos):


my_intersect([], _, []).

my_intersect([A|As], Bs, [A|Cs]):-
my_member(A, Bs),
!,
my_intersect(As, Bs, Cs).

my_intersect([_|As], Bs, Cs):-
my_intersect(As, Bs, Cs).

Para ejecutar el programa:


?- my_intersect([1,2,3,4], [2,3,6,7,1], Ls).

Y el resultado es:


Ls = [1,2,3]

Nota: Este programa usa algunas reglas (programas) definidas anteriormente.

*** Programa probado en WinProlog versión 4.7 ***

About these ads

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s