转自[python-chinese]
一个小程序的对比
函数式编程到底有什么用呢? 我想实际的好处就是可以将更好的描述问题本身,而不是描述解决问题的操作步骤。看一个具体的例子:
问题:一个列表;对每一个元素平方;将平方后的数如果除3的余数为1则从列表中除去。
看解决的方法:
1. 传统过程式(Python)
>>> s = [1,2,3]>>> d = []>>> for i in s: if i * i % 3 != 1: d.append(i * i)>>> d[9]>>>2. 传统函数式(Lisp)
(remove-if (lambda (n) (= (mod n 3) 1)) (mapcar (lambda (n) (* n n)) '(1 2 3))) 可以看出,函数式的程序很好的对应了我们所提问题的两个步骤,分别用 mapcar, remove-if来实现。不过Lisp的程序确实不太好读,我们用python 和 ruby 来改进一下:
3. Python函数式:
>>> filter(lambda n: n % 3 != 1, map(lambda n:n*n, [1,2,3]))[9]4. Ruby 函数式:
[1,2,3].map {|n| n * n}.reject{|n| n % 3 == 1}=> [9]经过比较,ruby的最为简洁,而且与问题描述对应的最自然。
--
Welcome to my blog ( about Python , Lisp)
http://albertlee.cublog.cn/_______________________________________________
python-chinese
Post: send python-chinese@lists.python.cn
Subscribe: send subscribe to python-chinese-request@lists.python.cn
Unsubscribe: send unsubscribe to python-chinese-request@lists.python.cn
Detail Info: http://python.cn/mailman/listinfo/python-chinese
分享到:
相关推荐
函数式编程语言 函数式编程语言是那些方便于使用函数式编程范式的语言。简单来说,如果具备函数式编程所需的特征, 它就可以被称为函数式语言。在多数情况下,编程的风格实际上决定了一个程序是否是函数式的。 是...
支持面向对象和函数式编程,动态语言 能够通过调用C/C++代码扩展功能 代码规范程度高,可读性强 目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / ...
支持面向对象和函数式编程 能够通过调用C/C++代码扩展功能 代码规范程度高,可读性强 目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络...
支持面向对象和函数式编程 可扩展性,能调用C/C++代码 代码规范程度高,可读性强 目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络爬虫 - ...
支持面向对象和函数式编程 能够通过调用C/C++代码扩展功能 代码规范程度高,可读性强 目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络...
支持面向对象和函数式编程 可扩展性,能调用C/C++代码 代码规范程度高,可读性强 目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络爬虫 - ...
支持面向对象和函数式编程 能够通过调用C/C++代码扩展功能 代码规范程度高,可读性强 目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络...
学习曲线低,非专业人士也能上手开源系统,拥有强大的生态圈解释型语言,完美的平台可移植性支持面向对象和函数式编程能够通过调用C/C++代码扩展功能代码规范程度高,可读性强目前几个比较流行的领域,Python都有...
支持面向对象和函数式编程 能够通过调用C/C++代码扩展功能 代码规范程度高,可读性强 目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络...
支持面向对象和函数式编程 可扩展性,能调用C/C++代码 代码规范程度高,可读性强 目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络爬虫 - ...
支持面向对象和函数式编程 能够通过调用C/C++代码扩展功能 代码规范程度高,可读性强 目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络...
支持面向对象和函数式编程 能够通过调用C/C++代码扩展功能 代码规范程度高,可读性强 目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络...
支持面向对象和函数式编程 可扩展性,能调用C/C++代码 代码规范程度高,可读性强 目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络爬虫 - ...
支持面向对象和函数式编程 能够通过调用C/C++代码扩展功能 代码规范程度高,可读性强 目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络...
支持面向对象和函数式编程 能够通过调用C/C++代码扩展功能 代码规范程度高,可读性强 目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络...