计算机科学

首页 > 计算机科学

MiniKanren

2018-09-05 18:18:52     所属分类:程序设计语言

miniKanren是一类关系型编程语言。miniKanren可以通过给定的关系表达式和计算结果来反向推导,找出符合条件的输入变量的取值组合。程序员可以通过加入关系表达式对输入变量和计算结果添加约束条件。miniKanren通过“搜索树”的办法来搜索所有可能的输入变量。如果搜索空间非常大而且符合条件的结果不存在,miniKanren的搜索有可能永远也不会停止。

evalo是一个用miniKanren写的程序,evalo是以关系表达式为输入和输出的程序。在miniKanren中调用evalo的方法是:(evalo q q)。evalo具有自产生程式的功能。

Dan Friedman的“The Reasoned Schemer”一书使用miniKanren来介绍关系型编程。该书还提供了miniKanren在Scheme语言上的一个完整实现。该实现的核心代码的长度仅仅只有两页纸。miniKanren的Scheme实现的设计目的是容易理解,修改并扩展。

目前,Haskell, Racket, Ruby, Clojure以及Python中有miniKanren的具体实现。其中最典型的实现是Scheme的版本。Clojure语言里的core.logic也是受到miniKanren启发。

"Kanren"这个词来自于日语“関连”,即“关联”。

参考资料

外部链接

  • http://minikanren.org/ miniKanren的主页
版权声明:本文由北城百科网创作,转载请联系管理获取授权,未经容许转载必究。https://www.beichengjiu.com/computerscience/340564.html

上一篇:Lazarus
相关推荐