近年来,“函数式编程”的许多元素已进入 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/