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在带有ActionListener和ifelse语句Jbutton的JFrame上使用JTextFields、JButtons和JLabels不起作用   java如何从另一个应用程序打开我们的活动页面?   UUID生成的字符的java类型   jar包含IsoOutputStream和IsoBufferWrapperImpl类的java   JAVA创建自定义。ECLIPSE中的几个现有类库文件   Java包结构约定   java空指针异常,仅当我尝试数组形式的类型时   来自过滤器的java转发请求   java是在pom中生成Maven依赖项的简单方法。xml?   java请求   在HashMap中使用字符串数组,Java   显示用户在谷歌地图中预定义位置方向的java   在Java中重新测试特定的方法   如何将html表单中的输入转换为Java字符串变量?   java有人知道Maven2 POM类路径容器的Eclipse(WSAD/RAD)插件吗   json从java列表中抓取数据   SpringJava。lang.ClassCastException:org。阿帕奇。德比。客户是ClientPreparedStatement42不能强制转换为组织。阿帕奇。德比。iapi。sql。准备好的报表