计算框架

mona的Python项目详细描述


单子

buildcoveragepythonpypicommits sincelast commitlicensecode style

mona是一个计算框架,它提供persistentmemoization,并将python调用堆栈转换为任务dependency graph。该图包含三种类型的边:依赖于其他任务输出的任务输入、创建新任务的任务和引用其他任务输出的任务输出。

安装

使用Pip安装和更新。

pip install -U mona

一个简单的例子

frommonaimportMona,Ruleapp=Mona()@Ruleasyncdeftotal(xs):returnsum(xs)@app.entry('fib',int)@Ruleasyncdeffib(n):ifn<=2:return1returntotal([fib(n-1),fib(n-2)])
$ export MONA_APP=fib:app
$ mona init
Initializing an empty repository in /home/mona/fib/.mona.
$ mona run fib 5
7c3947: fib(5): will run
0383f6: fib(3): will run
b0287d: fib(4): will run
f47d51: fib(1): will run
9fd61c: fib(2): will run
45c92d: total([fib(2), fib(1)]): will run
2c136c: total([fib(3), fib(2)]): will run
521a8b: total([fib(4), fib(3)]): will run
Finished
$ mona graph
fromfibimportapp,fibwithapp.create_session()assess:assertsess.eval(fib(5))==sum(sess.eval([fib(4),fib(3)]))

链接

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

推荐PyPI第三方库


热门话题
java变量始终存储0值。为什么?   如何使用Java/REST将Azure blob从一个存储容器移动到另一个存储容器?   java将commons DBCP从1.2升级到1.4,我应该害怕吗?   java如何使用分隔符拆分字符串?   java使用数组读取json对象   java在groovy中切片字符串   交换数组java的两个邻域元素   java移动用于确定字符串是否为回文的逻辑   java Android应用程序在一个活动中崩溃   java Sparkjava将webapp文件夹设置为静态资源/模板的文件夹   java复杂条件表达式,用户易用。   java如何仅在表存在时从表中选择值   java I无法将数据从Recyclerview传递到其他活动   java数据结构最佳设计(大数据)   java Android从DatePickerDialogFragment中删除日历视图   java将数据从Firebase获取到片段   数组。sort()在java中运行不正常