You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何用函数式方法生成指定长度的等比数列数组

嘿,这个需求用函数式编程来实现其实挺直观的!不同编程语言里都有对应的函数组合方式来搞定,我给你举几个常用语言的实现例子:

JavaScript 实现

你可以用Array.from()搭配箭头函数来完成,这是很典型的函数式写法,全程没有可变状态,纯靠映射生成结果:

const generateGeometricSequence = (a, n) => 
  Array.from({ length: n }, (_, index) => Math.pow(a, index + 1));

// 测试示例:当a=2,n=4时
console.log(generateGeometricSequence(2, 4)); // 输出 [2, 4, 8, 16]

这里的逻辑是:Array.from()根据指定的长度n创建空数组框架,第二个参数作为映射函数,利用index(从0开始)计算出1到n的幂次,再通过Math.pow()得到对应项的值。

Python 实现

Python里有两种常见的函数式写法,一种是用map()结合range(),另一种是更简洁的列表推导式(列表推导式也属于函数式编程的声明式风格):

# 用map()的写法
def generate_geometric_sequence(a, n):
    return list(map(lambda x: a ** x, range(1, n + 1)))

# 或者用列表推导式(更易读)
def generate_geometric_sequence(a, n):
    return [a ** x for x in range(1, n + 1)]

# 测试示例:当a=3,n=3时
print(generate_geometric_sequence(3, 3)) # 输出 [3, 9, 27]

range(1, n+1)生成了从1到n的整数序列,然后通过映射操作把每个整数x转换成a的x次方,最后转成列表得到目标数组。

不管哪种语言,函数式实现的核心都是用纯函数做映射转换,避免手动循环和修改可变变量,这样代码更简洁也更符合函数式编程的理念。

内容的提问来源于stack exchange,提问作者user3239711

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:14:00