Python函数式编程代码片段
我看到一些优雅的Python代码,使用了列表推导和映射归约的技巧。你能分享一些这样的代码或者推荐一个网站吗?
谢谢。
4 个回答
3
在用Python进行函数式编程时要小心。这样做的唯一理由就是为了提高代码的可读性。如果用函数式的方式表达算法比用命令式的方式更优雅,而且不会导致性能问题(通常不会),那就可以尝试。
不过,Python并不优化尾递归,而且递归的深度限制是1000次,所以一般情况下你不能使用O(n)的递归,只能使用O(log(n))的递归。
另外,Python 3中去掉了reduce()这个函数,这也是有原因的(http://www.artima.com/weblogs/viewpost.jsp?thread=98196)。大多数复杂的reduce用法用普通的循环来写会更容易理解,而且sum()这个函数已经内置了。
5
这里面有一些很不错的函数式编程风格的代码片段:函数式编程入门指南