我需要編寫等價類的節目,並獲得此輸出......等價類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))
基本上,一組是其中的順序並不重要的列表,但元素不出現不止一次。 該函數應接受一對對(根據某種等價關係相關的元素)列表,並返回一組等價類而不使用迭代或賦值語句(例如do
,set!
等)。
然而,一套實用程序,如set-intersection
,set-union
和其消除在一個列表中的重複和內置函數union
,intersection
的函數,並且remove-duplicates
是允許的。
非常感謝!
順便說一下,這不是一個家庭作業問題。我的一位朋友需要這段代碼來解決類似的問題。
你可以標記這是家庭作業,如果是家庭作業嗎?如果你這樣做,你會得到更合適的答案。 – 2010-05-03 15:43:08
聽起來像作業給我... – 2010-05-03 15:57:15
不,它不是作業。 – bubdada 2010-05-03 18:28:49