Tengo que escribir un programa de clases de equivalencia y obtener este salidas ...clases de equivalencia Lisp
(equiv '((a b) (a c) (d e) (e f) (c g) (g h)))
=> ((a b c g h) (d e f))
(equiv '((a b) (c d) (e f) (f g) (a e)))
=> ((a b e f g) (c d))
Básicamente, Un conjunto es una lista en la que el orden no es importante, pero no lo hacen los elementos aparecer más de una vez La función debe aceptar una lista de pares (elementos que están relacionados de acuerdo con alguna relación de equivalencia) y devolver un conjunto de clases de equivalencia sin usar declaraciones de iteración o asignación (por ejemplo, do
, set!
, etc.).
Sin embargo, las utilidades de ajuste están permitidos como set-intersection
, set-union
y una función que elimina duplicados en una lista y funciones integradas en union
, intersection
, y remove-duplicates
.
¡Muchas gracias!
Por cierto, no es una pregunta para la tarea. Un amigo mío necesita esta pieza de código para resolver preguntas similares.
¿Puede usted y la etiqueta se trata como tarea si se trata de la tarea? Obtendrás respuestas más apropiadas si lo haces. –
Me suena a tarea ... –
No, no es tarea. – bubdada