En esta página, aprenderás una técnica recursiva para eliminar duplicados de una lista.
Imagina que tienes una lista de elementos y quieres saber si los elementos de la lista son distintos. Por ejemplo, puede que quieras asegurarte de que no tienes nada en tu lista de la compra dos veces.
Como primer paso, responderemos a la pregunta de sí/no: ¿hay duplicados en tu lista?
¿son los artículos distintos?
, que se inicia a continuación. Ya que estás escribiendo un predicado, tu procedimiento siempre debe reportar verdadero
o falso
.reporte
en el fondo, ¿qué te dice eso sobre los elementos de la lista?Para tu lista de compras, no solo te gustaría saber si hay o no duplicados. Sería bueno tener una nueva lista con los duplicados eliminados.
elementos distintos de
utilizando una estructura similar a la del predicado ¿son distintos los elementos?
.
El algoritmo para este bloque tomará las mismas decisiones que en ¿son los elementos distintos?
. Pero eso era un predicado. Este tiene que reportar una lista. Así que mira los tres bloques reportar
en tu código para el predicado ¿son los elementos distintos?
, y decide que deben reportar estos para el reportero elementos distintos de
.
elementos distintos de
?reportero
, ¿qué te dice eso sobre el primer elemento de la lista? ¿Quieres que el primer elemento sea parte de la lista que reportas?