快速高效的lambda函数。
fz的Python项目详细描述
快速高效的lambda函数。
什么是fz?
fz为python 3定义lambda函数提供了更好的方法。语法 受Python的C++^ {Tt3} $、Scala lambdas和quicklambda启发。
语法
fzlambdas使用占位符对象来表示新的 拉姆达占位符看起来像:_1,_2,…,一直到_255 (函数的位置参数的最大数目)。
要创建lambda,只需使用以下占位符构建一个表达式 你想让争论消失。
示例使用
简单算法
许多lambda只是简单的算术。例如:
>>>fromfzimport_1>>>f=_1+1>>>f(1)2>>>f(3)4>>>(_1*2)(3)6>>>(_1**2)(3)9>>>list(map(_1**2,range(5)))[0,1,4,9,16]
属性和项目访问
>>> from fz import _1 >>> _1[0]([1, 2]) 1 >>> list(map(_1[1], [(0, 1), (2, 3), (4, 5)])) [1, 3, 5] >>> _1.imag(1j) 1.0 >>> list(map(_1.imag, (1j, 1 + 2j, 2 + 3j))) [1, 2, 3]
函数调用
因为我们只能自顶向下包装,所以必须显式包装函数 被推迟。
>>>fromfzimport_f,_1,_2,_3>>>deff(a,b):...returna+b>>>_f(f)(_1,_2)(1,2)3>>>g=_f(f)(_1,-1)>>>g(1)0>>>flip=_f(_1)(_3,_2)>>>flip(print,1,2)21
支持的操作
- 二进制运算符
- 一元运算符
- 属性访问(有些名称用于实现)
- 下标(项目访问)
- iter
- next
- abs
许可证
fz是免费软件,由GNU General Public授权 许可证,版本2。有关详细信息,请参阅LICENSE文件。
来源
源代码托管在github上的https://github.com/llllllllll/fz。