累加

累加

简单

说明

实现accumulate操作。它接收一个集合,以及一个要对集合中每个元素执行的操作,返回一个新集合,新集合中的每个元素都是把该操作应用到输入集合中对应元素后的结果。

给定下面这个数字集合:

  • 1, 2, 3, 4, 5

以及这个操作:

  • 求一个数的平方(x => x * x)

你的代码应该能够生成由平方值组成的集合:

  • 1, 4, 9, 16, 25

查看测试套件,了解预期的函数签名。

限制

别去碰标准库提供的那些 collect/map/fmap/whatchamacallit 功能!请改用其他基本工具,自己把这道题解决掉。

进阶

在为通用的 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,全部免费。