2010-09-28 30 views
2

我試圖弄清楚如何創建一個只包含一次元素的新列表。我也不能使用遞歸。Haskell - 獲取只發生一次的項目

這是較大功能的一小部分。我試圖寫一個函數來獲得兩套相交。基本上我組合了。然後排序。然後我想把它和B集合起來,擺脫那個集合中的所有重複。除非別人知道更簡單的方法。

我可以使用高階函數,但我不能使用遞歸。

由於

編輯: 示例:

[1,2,3,3,4,4,5,5]應該出來爲[1,2]

回答

2

這個問題之前已經問過了,基本上你只是想通過計算元素的數量將它們分組在一起,然後只提取一個數。 (可能使用'filter'

請參閱Counting unique elements in a list

+0

這個問題被標記爲家庭作業,所以他可能需要更多的提示而不是別人來解決他 – Daenyth 2010-09-28 02:42:56

+0

如果我可以使用組,你是個天才。 – Matt 2010-09-28 02:43:06

+0

@Daenyth是的,但做功課的第一部分是做你的研究。我想表明,也許再多一點時間搜索就能找到答案。 – 2010-09-28 03:42:43

1

希望這個提示足夠模糊。 :)

想想將重複元素分組在一起。

+0

我知道如何壓縮,然後擺脫重複的。但我只想要只發生一次的元素。用一個例子編輯我的問題。 – Matt 2010-09-28 01:55:08

+0

如果現在相鄰的元素本身位於較小的內部列表中,您認爲它會有所幫助嗎? – dino 2010-09-28 02:10:26

+0

哦,我明白了,我不會試圖幫助OP自己想出答案。嗯 – dino 2010-09-28 18:28:12

1

想想你會用什麼數據結構來跟蹤每個事物出現的次數。

1

如何:

concat $ filter (null . tail) $ group [1,2,3,3,4,4,5,5]