Python中jsonlike对象的声明性编程

inference-logic的Python项目详细描述


推理逻辑

https://img.shields.io/pypi/v/inference_logic.svghttps://img.shields.io/travis/gecBurton/inference_logic.svgDocumentation StatusUpdates

这个项目的目标是探索如何编写一个 允许程序员以声明方式编码的一组特性 在原生Python中。在

代码松散地基于Prolog,但是没有使用Prolog Term/functor结构它使用JSON类似的dicts和tuples。在

这个项目的成功是由 99 problems已解决,以使代码专注于交付 功能和非自行车脱落

此代码是实验性的,不完整。不要在你的 工作还是上学!如果你想用认真的,经过测试的 Python中的声明性工具使用优秀的pyDatalog。在

tldr

frominference_logicimportVariable,Rule,searchX,Y,Z,C,P=Variable.factory("X","Y","Z","C","P")db=[dict(parent="Abe",child="Homer"),dict(parent="Homer",child="Lisa"),dict(parent="Homer",child="Bart"),dict(parent="Homer",child="Maggie"),Rule(dict(ancestor=X,descendant=Z),dict(parent=X,child=Z)),Rule(dict(ancestor=X,descendant=Z),dict(parent=X,child=Y),dict(ancestor=Y,descendant=Z),),]query=dict(ancestor=P,descendant=C)results=search(db,query)assertnext(results)=={C:"Lisa",P:"Abe"}assertnext(results)=={C:"Bart",P:"Abe"}assertnext(results)=={C:"Maggie",P:"Abe"}assertnext(results)=={C:"Homer",P:"Abe"}assertnext(results)=={C:"Lisa",P:"Homer"}assertnext(results)=={C:"Bart",P:"Homer"}assertnext(results)=={C:"Maggie",P:"Homer"}

学分

此包是用Cookiecutteraudreyr/cookiecutter-pypackage项目模板创建的。在

它最初是受py4fun的启发,这里有些代码是直接来的 从这个项目。在

感谢kclaurelie帮助解决基本问题 困扰我好几个月的问题!在

历史

  • PyPI的第一个版本。在

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

推荐PyPI第三方库


热门话题
调试如何使用VIM/GVIM调试Java应用程序?   java Tomcat 8+OPenJDK 8 64位内存使用率   算法希尔密码加密/解密源代码Java(2 x 2矩阵密钥)   番石榴中有没有类似于功能性Java的效果?   Java算法:检查字典中是否有字符串   java如何从lambda中获取变量?   获取当前jar文件名的java   java LinkedList:如何将当前节点分配给它后面的节点?删除当前节点时   以与ImageMagick的“identify”命令相同的方式在Java中获取图像质量   java是否可以在运行时使用JAXR创建Web服务?   java在listView中过滤两个字符串   maven管理具有外部资源依赖关系的多个Java模块   java Android通过Thread/Runnable/Handler/Looper方法执行简单的异步任务   java Hibernate返回空对象   java将一个jar打包成一个dist dir,其中包含独立的外部资源和依赖项