関数を書くための美しく慣用的な方法を見つけるのに苦労しています
(defn remove-smaller
[coll partial-order-fn]
___
)
wherepartial-order-fn
は 2 つの引数を取り、-1 を返しnil
ます。
の結果はremove-smaller
coll で、coll 内の他のどのアイテムよりも小さいすべてのアイテムが削除されます。
例: 半順序を定義した場合、数字は通常どおり比較され、文字も比較されますが、文字と数字は比較できません。
1 < 2 a < t 2 ? a
次に、次のようになります。
(remove-smaller [1 9 a f 3 4 z])
==> [9 z]