monad-函数库

monad的Python项目详细描述


简介

什么?

python中的monad,以及一些有用的函数。

怎么做?

>>> from monad.decorators import maybe
>>> parse_int = maybe(int)
>>> parse_int(42)
Just(42)
>>> parse_int('42')
Just(42)
>>> parse_int('42.2')
Nothing

>>> parse_float = maybe(float)
>>> parse_float('42.2')
Just(42.2)

>>> from monad.actions import tryout
>>> parse_number = tryout(parse_int, parse_float)
>>> tokens = [2, '0', '4', 'eight', '10.0']
>>> [parse_number(token) for token in tokens]
[Just(2), Just(0), Just(4), Nothing, Just(10.0)]

>>> @maybe
... def reciprocal(n):
...     return 1. / n
>>> reciprocal(2)
Just(0.5)
>>> reciprocal(0)
Nothing

>>> process = parse_number >> reciprocal
>>> process('4')
Just(0.25)
>>> process('0')
Nothing
>>> [process(token) for token in tokens]
[Just(0.5), Nothing, Just(0.25), Nothing, Just(0.1)]
>>> [parse_number(token) >> reciprocal for token in tokens]
[Just(0.5), Nothing, Just(0.25), Nothing, Just(0.1)]
>>> [parse_number(token) >> reciprocal >> reciprocal for token in tokens]
[Just(2.0), Nothing, Just(4.0), Nothing, Just(10.0)]

为什么?

为什么不呢。

要求

  • cpython=2.7

安装

从pypi安装:

pip install monad

从源安装,下载源包,解压缩,然后cd到源目录,运行:

make install

许可证

bsd new,请参阅许可证以了解详细信息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
多线程使用Java线程并行/串行执行一组函数   特定代码段的java同步语句   获取封闭范围中定义的局部变量的java必须是final或effective final   java如何使索引小于大小   java如何从MongoDB获取ObjectId值?   JComboBox的Java LWJGL显示屏分辨率异常   如何创建s.th。像java函数中的输出流?   Java中的多线程反射映射   JAXRS过滤器和拦截器的java顺序   JavaJSF看不到我的带注释的Bean   java为什么JNI在枚举中找不到selfdefine static?   java使用'FTPClient'从FTP服务器下载部分文件`   java错误使用ivy的conf属性   如何通过java编程使用oracle db从存储过程中对文本文件中的员工详细信息执行CRUD操作   用于密码验证的正则表达式Java   java如何使用SonarQube6生成HTML报告。7.5   ubuntu如何在java中指定路径中包含变量的文件路径?   java jqGrid:更新和插入数据时显示/隐藏列