Cómo eliminar duplicados en Prolog

Prolog es un lenguaje de programación declarativo comúnmente utilizado en la investigación de la inteligencia artificial y la lingüística. A diferencia de los lenguajes de procedimiento más comunes, la mayoría de los programas de Prolog se definen como una serie de reglas y ecuaciones, más que como una serie de pasos. El siguiente código describe el proceso para eliminar duplicados de una lista en Prolog.

Paso 2

Escriba el código entre las barras (dejando las barras):

/% remove_dups (+ List, -NewList):% New List está vinculado a List, pero con elementos duplicados eliminados. remove_dups ([], []).

remove_dups ([First | Rest], NewRest): - miembro (First, Rest), remove_dups (Rest, NewRest).

remove_dups ([First | Rest], [First | NewRest]): - no (miembro (First, Rest)), remove_dups (Rest, NewRest). /

La función "remove_dups" se define como una serie de tres reglas. La primera regla ("remove_dups ([], [].)") Especifica que si la lista está vacía, no se debe hacer nada; la función simplemente debería regresar. La segunda regla especifica que si el primer elemento de la lista aparece en cualquier otro lugar de la lista, entonces debe eliminarse (ya que es un duplicado) y el procesamiento debe continuar usando el resto de la lista llamando a la función remove_dups nuevamente con el primer elemento de la lista Parado. La regla final especifica que si el primer miembro de la lista no está presente en otra parte de la lista, debe mantenerse y el procesamiento debe continuar.

Techwalla puede obtener una compensación a través de los enlaces de afiliados en esta historia.