J'ai besoin d'écrire un programme pour les classes d'équivalence et d'obtenir cette sortie ...Classes d'équivalence 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))
Fondamentalement, un ensemble est une liste dans laquelle l'ordre n'a pas d'importance, mais les éléments ne le font pas apparaître plus d'une fois. La fonction doit accepter une liste de paires (éléments liés selon une relation d'équivalence) et renvoyer un ensemble de classes d'équivalence sans utiliser d'instructions d'itération ou d'affectation (par exemple do
, set!
, etc.).
Cependant, les services publics tels que set-intersection
ensemble, set-union
et une fonction qui élimine les doublons dans une liste et fonctions intégrées union
, intersection
et remove-duplicates
sont autorisés.
Merci beaucoup! En passant, ce n'est pas une question de devoirs. Un de mes amis a besoin de ce morceau de code pour résoudre des questions smilar.
Pouvez-vous appeler ceci est comme devoir si elle est devoirs? Vous obtiendrez des réponses plus appropriées si vous le faites. –
On dirait des devoirs pour moi ... –
Non ce n'est pas des devoirs. – bubdada