java - Java中有 'logic programming'的元素吗?

标签 java logic-programming

近年来,“函数式编程”的许多元素已进入 Java,尤其是 Java 8。我想到了 lambda 表达式、函数式接口(interface)、Java 泛型、流接口(interface)、可选类等。

我的问题是,是否同样有任何新的类/接口(interface)/语法被添加到 Java 中并且源于“逻辑编程”的范例?或者是否有这样做的计划?

(参见 here 两种方法的比较)

最佳答案

逻辑编程语言(如 Prolog)允许将程序编写为真值语句和它们之间的关系,因此该语言的实现本质上是一种算法,该算法搜索满足程序所有声明性语句的解决方案。

因此,要使 Java 支持“开箱即用”的逻辑编程,标准库必须包含这样的搜索算法。据我所知,事实并非如此。但是,有第三方库可以; Google 搜索“Java logic programming library” ' 产生几个(constraint programming libraries 同样。)

这些库通常将语句和关系表示为 Java 对象,并包括算法的实现(或可能的几种算法以供选择)以搜索解决方案。考虑到这些库的可用性、复杂性和多样性,似乎不太可能将等效的东西添加到 Java 标准库中。

关于java - Java中有 'logic programming'的元素吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68710433/

相关文章:

java - 有没有办法让我能够对 System.in 输入和 FileInputStream 输入使用相同的扫描仪?

java - Android蓝牙连接另一个蓝牙设备

java - 我需要添加 log4j 文件才能在现有文件达到最大大小限制后继续工作

prolog - λProlog 拒绝假设的推理查询?

prolog - 还有什么更有趣或更强大的功能: curry , Mercurial 或Lambda-序言?

prolog - 正确使用逻辑语言作为工具

java - 主方法中的打印方法不起作用 - Java

clojure - 使用 core.logic 列出唯一的 DAG 父级

java - 尝试根据内容更改Dojogrid行颜色