我的教授让我们根据连续分数创建一系列与近似pi和e相关的函数.为了进行设置,他让我们创建一个函数,它接受一个整数并映射许多奇数的平方,从1开始.例如,这是所需的行为:
oddSquares 6;;
val it : int list = [1.0; 9.0; 25.0; 49.0; 81.0; 121.0]
Run Code Online (Sandbox Code Playgroud)
我可以看到一个映射可能会用于对列表中的所有值进行平方,但我无法找到将数字映射到数字列表的方法.我不想让任何人为我编写代码,但有条不紊地,我在组装基本列表时想要做什么?
感觉最好的方法是从6个术语的基数开始向后工作.然后我们评估第6个奇数项(实际上是11或2x-1),但随后需要一些递归方法来继续评估oddSquares的较小值.我也认为这违背了试图将数字映射到这些值的精神.有人可以给我一些关于从号码到列表表格的第一次翻译的指导吗?
F#提供了用于创建连续数字列表的特殊简洁语法:
let oneToSix = [1..6]
Run Code Online (Sandbox Code Playgroud)
这是一种称为"列表理解"的特殊情况.它们可能比连续数字更复杂 - 它们可以包括多个生成器,滤波器,投影,笛卡尔积等.特别是,生成前N个奇数的整个任务可以表示为一个列表理解.但是,既然你明确要求不为你编写代码,我就不会.