一元数据结构

matts-majestic-monads的Python项目详细描述


马特斯雄伟的单子

pipeline statuscoverage report

这个夸张的库在python中实现functor、applicative和monad。

概要

可以使用Either.convertMaybe.convert作为修饰符来转换返回类型。 此示例将异常转换为左值:

frommonadsimportEither@Either.convertdefparse_arguments():parser=argparse.ArgumentParser(description='Download a URL and print it')parser.add_argument('URL',help='URL to download')returnparser.parse_args()

一旦你有了你的二者之一,你就可以使用fmapbind来操作包含的值:

result=(make_parser().fmap(parse).fmap(to_url).bind(read))

将向这些方法传递当前值。 当函数返回正常值时,应该使用fmap。 当函数返回一个monad时,使用bind

可以使用Function作为修饰符来转换函数。 一旦转换成可组合的:

frommonadsimportFunction@Functiondefparse(parser):returnparser.parse_args()@Functiondefto_url(arguments):returnarguments.URLboth=parse.compose(to_url)

示例

有一个在example.py中使用这个库的简单示例。 此脚本读取您提供的URL并打印正文的长度:

➜ pipenv run python example.py 'http://python.org/'
Right(48817)
➜ pipenv run python example.py 'http://pythonasdasd.org/'
Left(<urlopen error [Errno -2] Name or service not known>)

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

推荐PyPI第三方库


热门话题
在Esper中声明Classtype实例变量并调用实例方法时未调用java实例方法   java Android真的很慢   macos在Mac上用Java播放声音   java如何在springboot中生成clientid和clientsecret并存储在数据库中?   返回假条件的java方法   数组在Java中截断同步ArrayList的正确方法   java HashMap<Long,String>和HashMap<>之间有什么区别?   正在寻找允许按名称读取列的java CSV库   HQL Hibernate查询中的java左连接   java以编程方式添加可绘制图像的最佳方法是什么?   已使用NetworkImageView下载的安卓加载图像上的java截击不起作用   java CORBA通知订阅(错误:org.omg.CORBA.MARSHAL:vmcid:0x0次要代码:0已完成:否)   Java BufferedReader openvms   java是搜索字符串中的一个字母并在字母前加上“a”的最佳算法?   由于测试依赖关系,java Gradle Spring云流项目未生成   Java程序中的数组ArrayIndexOutOfBoundsException,用于检查double是否为负数   java Android/RxJava如何链接网络请求并在失败时重试   java告诉OpenEJB忽略MDB   java如何在不迁移的情况下在room数据库中添加表