- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Java 中实现一个 prolog 解释器。我想弄清楚“,”运算符应该如何工作。我试图实现这样的等效规则:
and(A, B) :- A, B.
','(X, Y) :- X, Y.
?
n(1).
n(2).
and(X, Y) :- X, Y. % this is used to compare with the built in operator ','
c1 :- n(X), write(X), =(1, X), !, fail.
c2 :- ','(n(X), ','(write(X), ','(=(1, X), ','(!, fail)))).
c3 :- and(n(X), and(write(X), and(=(1, X), and(!, fail)))).
最佳答案
您对 ,
的性质是正确的作为二元函数但转换为 and
尚未解释如何解释连词。让我们来看看一般的 Prolog 规则:
head :- % we disregard variables at the moment
goal1,
goal2,
goal3.
fact. % a fact is a rule without a body
make(coffee).
make(tea).
make(orange_juice).
make(croissant).
make(scrambled_eggs).
prepare(beverage) :-
make(coffee).
prepare(beverage) :-
make(tea).
prepare(beverage) :-
make(orange_juice).
prepare(food) :-
make(croissant).
prepare(food) :-
make(scrambled_eggs).
breakfast :-
prepare(beverage),
prepare(food).
?- breakfast.
true ;
true ;
true ;
true ;
true ;
true.
make(coffee)
是事实,因此我们可以将其从列表中划掉。
true
)。但是我们做了一些选择:我们可以准备茶或橙汁而不是咖啡,我们可以做炒鸡蛋而不是羊角面包。这意味着我们可以回溯:
true
又是:))。当我们进一步回溯时,我们得到制作饮料和食物的所有组合并打印
true
对于所有 6 个。
breakfast :-
prepare(beverage),
!,
prepare(food).
?- breakfast.
true ;
true.
关于prolog - swi 序言 : conjunction and cut,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51643790/
假设我有一个表示用户的表:id, name。 该表很大,大约有 1 亿行。用户也有一些属性(property),比方说出生城市。这是可选字段,因此只有一小部分用户(假设只有 5%)提供了它。所以我还有
这个问题在这里已经有了答案: static_assert and class templates (2 个答案) 关闭 4 年前。 给定以下代码 ( https://wandbox.org/perm
我正在尝试在 Java 中实现一个 prolog 解释器。我想弄清楚“,”运算符应该如何工作。我试图实现这样的等效规则: and(A, B) :- A, B. 我正在使用测试用例 c1、c2 和 c3
这个问题在这里已经有了答案: Is there a "previous sibling" selector? (33 个答案) 关闭 6 年前。
我有一个关于将 getline 与 If/Else If 语句一起使用的问题。 目前,我的代码如下所示: int yourAge = 13; cout = 21) {
我正在学习 Ruby 类(class),在运行其中一个示例时遇到错误。这是我的 Ruby 类: require 'json' class User attr_accessor :email, :n
在我的研究中,我自动生成 SMT2,然后将其传递给 Z3。生成的代码基本上是许多不同约束的一个非常大的联合 (and ...)。这样做会失去(或获得?)任何重要的性能,而不是生成许多断言吗? 最佳答案
运行代码直到并包括 plotly_build(p) 和正确的绘图结果。 可重现代码 library(plotly) #data df1 <- data.frame(cond = factor( rep
我有一些过滤器表示为函数 List(MyClass => Boolean) 的列表。我试图获得所有成员的逻辑连接(AND)。我有一种感觉,我可以在这里使用折叠。但我没有得到语法,尤其是关于如何将 My
我正在构建一个移动导航菜单,并将一个图标应用于包含子项(下拉箭头)的 li 元素。我正在使用 :after 伪选择器应用图标。问题是,当我使用 slideToggle 打开/关闭菜单时,箭头图标会在菜
是否存在您无法正确使用 std::conjunction/std::disjunction 并且不使用更“基本”(即语言功能而不是库功能)折叠表达式 &&/||? 例子: // func is ena
我们有一个大 flask_restplus已使用一年左右的应用程序。我们现在想使用 flask_swagger_ui在此应用程序中工作,为应用程序的一部分提供一些静态生成的 swagger 文档。 我
我有以下实体类(从 PersistentObjectSupport 类继承的 ID): @Entity public class AmbulanceDeactivation extends Persi
我想用包含连接表的 Student 查询一个主题。 这种关系是多对多的。我想要连接表 id ( StudentSubject ) 但返回结果为空 Subject.findOne({
尝试使用如下子查询在Hive中运行此查询: select y,m,d,h from A where d not in (select d from B) 我收到一个错误"only subquery e
我目前正在使用 Symfony 2.1.0 开发网络应用程序。 我已经通读了 Templating chapter这本书的一部分,我正在尝试在我的网页中包含 Assets (现在,它只是一个样式表)。
我正在尝试在 Angular 4 应用程序中创建 D3 力导向图 ( https://github.com/d3/d3/blob/master/API.md#forces-d3-force )。 它可
这台机器安装了多个版本的 Java JDK 和多个版本的多个 IDE(Netbeans、IntelliJ、Eclipse 等)最近,我添加了 JDK 15.0.2 和 Netbeans 12.2。尝试
我正在从Spring 3.0.5迁移到3.1,因为我需要自定义RequestMappingHandlerMapping。我在扩展RequestMappingHandlerMapping的插件中遇到问题
make[1]: Entering directory `/tmp/Rtmpvk6s18/R.INSTALL65f35ee3733f/rJava/jri' make -C src JRI.jar ma
我是一名优秀的程序员,十分优秀!