如何用递归函数替代简单的for循环?
函数式编程 vs 命令式编程:求和例子的直观对比
最近刷到Eric Meijer的函数式编程讲座,里面有个例子真的特别精彩有趣,忍不住想分享给大家!
咱们先看命令式的求和实现:
要计算0到9的数字总和,命令式的写法得一步步给机器下达执行指令:先初始化一个变量存总和,再逐个遍历数字累加。代码长这样:
total = 0 for each in range(0, 10): total = total + each
你会发现,这段代码一直在解释具体的实现步骤,而不是直接说出“对这组数字求和”的核心需求。
再看Python里的函数式风格写法:
只用一行表达式就搞定了:sum(range(1,10))。这行代码完完全全和我们最初“对一组数字求和”的需求描述一致,根本不用操心底层怎么循环、怎么更新变量,直接说出我们要的结果就行。
这种差异真的很能体现函数式编程的优势——让代码更贴近人的思考逻辑,而不是机器的执行流程!
内容的提问来源于stack exchange,提问作者Nishant
相关产品推荐
相关产品推荐

