用 Java 编写的 miniKanren 实现 Java8kanren

码农软件 · 软件分类 · 其他开发相关 · 2019-10-17 20:58:26

软件介绍

Java8kanren 是用 Java 编写的 miniKanren 实现。

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 启发。

本文地址:https://www.codercto.com/soft/d/16984.html

认知与设计

认知与设计

Jeff Johnson / 张一宁 / 人民邮电出版社 / 2011-9-1 / 59.00元

本书语言清晰明了,将设计准则与其核心的认知学和感知科学高度统一起来,使得设计准则更容易地在具体环境中得到应用。涵盖了交互计算机系统设计的方方面面,为交互系统设计提供了支持工程方法。不仅如此,这也是一本人类行为原理的入门书。一起来看看 《认知与设计》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具