累加

累加

簡單

說明

實作accumulate操作:給定一個集合,以及一個要對集合中每個元素執行的操作,它會回傳一個新的集合,其中包含將該操作套用到輸入集合中每個元素的結果。

給定這組數字:

  • 1, 2, 3, 4, 5

以及這個操作:

  • 將數字平方(x => x * x)

你的程式碼應該要能產生這組平方數:

  • 1, 4, 9, 16, 25

請查看測試套件,了解預期的函式簽名。

限制

別去碰標準函式庫提供的那個 collect/map/fmap 之類的功能! 請改用其他基本工具,自己解決這一題。

進階

在為泛用的 Enumerable 定義方法時,通常會呼叫 #to_enum,以防沒有傳入區塊。

以下是你可以額外加入的測試:

def test_accumulate_when_block_is_deferred
  skip
  accumulate_enumerator = [1, 2, 3].accumulate
  accumulated_result = accumulate_enumerator.map do |number|
    number * number
  end
  assert_equal [1, 4, 9], accumulated_result
end
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Ruby Exercism

準備好開始 累加 了嗎?

註冊 Exercism,透過 21 個概念121 個練習 和真人引導來學習並精通 Ruby,全部免費。