累積

累積

初級

説明

accumulateという操作を実装してください。この操作は、コレクションと、その各要素に対して行う操作を受け取り、入力コレクションの各要素にその操作を適用した結果を収めた新しいコレクションを返します。

次の数値のコレクションがあるとします。

  • 1、2、3、4、5

そして、操作は次のとおりです。

  • 数値を2乗する(x => x * x)

書いたコードで、2乗した値のコレクションを生成できるようにしてください。

  • 1、4、9、16、25

期待される関数シグネチャは、テストスイートで確認してください。

制約

標準ライブラリが提供するcollect、map、fmap、その他もろもろの機能には手を出さないでください! 代わりに、ほかの基本的な道具を使って、自分で解いてみてください。

より正確に言うと、組み込みのLINQメソッドは一切使えません。

遅延評価のテスト

accumulateはIEnumerableを返すため、その実行は、それに対してToList()が呼び出されるまで延期されます。これはAccumulate_is_lazyメソッドでテストされます。

ヒント

この演習では、拡張メソッドを書く必要があります。詳しくは、こちらのページを参照してください。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
C# Exercism

累積を始める準備はできましたか?

Exercismに登録すれば、62個のコンセプト178個の演習、そして本物の人間によるメンタリングとともに、C#を学んでマスターできます。すべて無料です。