我苦苦尋找編寫一個函數鑑於部分有序集,刪除所有的小件物品
(defn remove-smaller
[coll partial-order-fn]
___
)
其中partial-order-fn
有兩個參數,並返回-1 0或1是他們是一個美麗的,習慣的方法可比較(或更小,相等,更大)或nil
。
remove-smaller
的結果應該是coll,所有小於coll中任何其他項目的項目都將被刪除。
示例:如果我們定義了一個偏序諸如數字太正常相比,字母,而是一個字母和數字是不可比:
1 < 2 a < t 2 ? a
然後,我們將有:
(remove-smaller [1 9 a f 3 4 z])
==> [9 z]
您可以添加一些示例輸入和輸出嗎? 「所有比科爾中其他物品都小的物品都將被移除。」將是一個單一項目的集合,即(最大科爾) – 2013-03-23 00:21:37
當然,我添加了一個例子。實際上,如果物品是部分訂購的(而不是完全訂購),'max'並不意味着什麼。 – Blacksad 2013-03-23 00:26:38
只是一個建議:如何調用函數'remove-mins'而不是'remove-smaller'?當前名稱聽起來像是要刪除比給定元素小的所有條目。 – DaoWen 2013-03-23 00:36:56