Python函数式和Ruby的相关技术比较

Python函数式在平时的使用中有很多有意思的事情。下面我们就详细的看看Python函数式和Ruby之间的技术比较。下面我们就来看看如何进行应用。希望大家有所收获。

Python函数式编程到底有什么用呢? 我想实际的好处就是可以将更好的描述问题本身,而不是描述解决问题的操作步骤。看一个具体的例子:

问题:一个列表;对每一个元素平方;将平方后的数如果除3的余数为1则从列表中除去。

看解决的方法:

1. 传统过程式(Python函数式)

 
 
 
  1. >>> s = [1,2,3]  
  2. >>> d = []  
  3. >>> for i in s:  
  4. if i * i % 3 != 1:  
  5. d.append(i * i)  
  6. >>> d  
  7. [9]  
  8. >>> 

2. 传统函数式(Lisp)

 
 
 
  1. (remove-if (lambda (n) (= (mod n 3) 1))  
  2. (mapcar (lambda (n) (* n n))  
  3. '(1 2 3))) 

可以看出,函数式的程序很好的对应了我们所提问题的两个步骤,分别用 mapcar, remove-if来实现。不过Lisp的程序确实不太好读,我们用python 和 ruby 来改进一下:

3. Python函数式:

 
 
 
  1. >>> filter(lambda n: n % 3 != 1, map(lambda n:n*n, [1,2,3]))  
  2. [9] 

4. Ruby 函数式:

 
 
 
  1. [1,2,3].map {|n| n * n}.reject{|n| n % 3 == 1}  
  2. => [9] 

经过比较,ruby的最为简洁,而且与问题描述对应的最自然。以上就是对Python函数式的相关介绍。

当前题目:Python函数式和Ruby的相关技术比较
链接分享:http://www.shufengxianlan.com/qtweb/news24/378424.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联