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

Python函数式编程到底有什么用呢? 我想实际的好处就是可以将更好的描述问题本身,而不是描述解决问题的操作步骤。看一个具体的例子:
问题:一个列表;对每一个元素平方;将平方后的数如果除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的最为简洁,而且与问题描述对应的最自然。以上就是对Python函数式的相关介绍。
Copyright © 2009-2022 www.wtcwzsj.com 青羊区广皓图文设计工作室(个体工商户) 版权所有 蜀ICP备19037934号