在集合上實作keep和discard操作。
給定一個集合,以及一個套用在該集合元素上的述詞,keep會回傳一個新的集合,裡面包含述詞為 true 的那些元素;而discard會回傳一個新的集合,裡面包含述詞為 false 的那些元素。
舉例來說,給定以下數字集合:
以及這個述詞:
那麼你的 keep 操作應該會產生:
而你的 discard 操作應該會產生:
請注意,keep 和 discard 的聯集就是所有的元素。
這些函式可以命名為keep和discard,但為了不和你所用語言中既有的函式或概念衝突,也可能需要取別的名字。
別碰標準函式庫提供的那個 filter/reject 還是什麼碗糕的功能!請改用其他基本工具,自己解決這一題吧!