コレクションに対してkeepとdiscardの操作を実装します。
コレクションと、その要素に対する述語が与えられたとき、keepは述語が真になる要素だけを含む新しいコレクションを返し、discardは述語が偽になる要素だけを含む新しいコレクションを返します。
たとえば、次のような数値のコレクションがあるとします。
そして、次のような述語です。
このとき、keepの操作は次の結果を返します。
一方、discardの操作は次の結果を返します。
keepとdiscardの和集合が、すべての要素になることに注意してください。
これらの関数はkeepとdiscardという名前で呼び出すこともできますが、お使いの言語にある既存の関数や概念と衝突しないように、別の名前にする必要があるかもしれません。
標準ライブラリが提供しているfilterやrejectなど、あの手の機能には手を出さないでください! 代わりに、ほかの基本的な道具を使って自力で解いてみましょう。
この演習では、SwiftのArray構造体にメソッドを追加することに焦点を当てます。
これは拡張を使うのが一番簡単です。
extension Array {
// Write your code for the 'Strain' exercise in this file.
}
Arrayのドキュメントはこちらにあります。