java - Java中有“逻辑编程”的元素吗?
问题描述
近年来,“函数式编程”的许多元素已经进入 Java,尤其是 Java 8。我想到了 lambda 表达式、函数式接口、Java 泛型、流接口、可选类等。
我的问题是,是否还有任何新的类/接口/语法已添加到 Java 中并源于“逻辑编程”的范式?或者是否有计划这样做?
(参见例如这里对这两种方法的比较)
解决方案
逻辑编程语言(例如 Prolog)允许将程序编写为真理陈述和它们之间的关系,因此该语言的实现本质上是一种算法,它搜索满足所有程序声明性陈述的解决方案。
因此,Java 要支持“开箱即用”的逻辑编程,标准库必须包含这样的搜索算法。据我所知,事实并非如此。但是,有第三方库可以这样做;谷歌搜索“ Java 逻辑编程库”会产生几个(同样的约束编程库。)
这些库通常将语句和关系表示为 Java 对象,并包括一个算法(或可能有几个可供选择的算法)的实现,以便搜索解决方案。考虑到这些库的可用性、复杂性和多样性,Java 标准库中似乎不太可能添加等价的东西。
推荐阅读
- python - bdist_wheel 如何知道我的包是用于 py3 而不是 cp38?
- python - 如何在pygame中击中给定精灵后编写游戏计时器停止器?为什么我的计时器仍在运行,即使我仍在主菜单中?
- java - 在 hdfs 目录中创建文件时如何获得通知
- javascript - 使用依赖数组反应 useEffect 仍然循环
- julia - 如何在 CentOS7 上使用 wget 下载 julia 1.3.1?
- java - 将从 websocket 接收到的事件排入队列以进行异步处理的最佳方法
- python - 安装新软件包时如何修复pycharm环境错误
- java - 如何在运行时替换一个类?
- ios - 在 Swift Playgrounds 中使用 Reality Composer 项目文件
- isabelle - 非平凡列表函数的归纳