轨道
/
F#
F#
/
练习
/
累加
累加

累加

简单

说明

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

给定下面这个数字集合:

  • 1, 2, 3, 4, 5

以及这个操作:

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

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

  • 1, 4, 9, 16, 25

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

限制

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

提示

本练习会用到 F# 的以下特性:

  • 尾递归 使用尾递归可以避免在输入很大时发生栈溢出。虽然没有测试用例明确检查这一点,但使用尾递归能得到性能更好的解法。关于尾递归的另一份好资料是这篇博客文章。
  • 类型推断 F# 编译器能自动推断类型,这意味着很多时候你完全不用写类型。想进一步了解它的工作原理和好处,请看这个页面。
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
F# Exercism

准备好开始 累加 了吗?

注册 Exercism,借助 18 个概念148 个练习 和真人导师指导,学习并掌握 F#,全部免费。