问题标签 [iso-prolog]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
prolog - Prolog 函子 - 计算 x^y
我是 prolog 的新手,正在尝试学习如何编程。我想知道如何x^y
在 Prolog 中计算两者都是整数。
我知道事实是这样的:
prolog - 在 Prolog 中定义谓词的最佳方法
我在 Prolog 中定义过程时遇到问题。我有两个源文件,想用它们来咨询 Prolog 引擎。这可以通过调用 Prolog 作为 swipl -g “['1.pl','2.pl'] 来完成。
这两个文件都是由另一个用另一种编程语言编写的程序生成的,我无法事先预测文件的确切内容。
问题是在其中一个文件中总是有一条规则
但是,有时规则
两个文件中都不存在,并且在执行谓词 1 的某些查询时出现错误“谓词 2”未定义。
如果我包括该行
进入其中一个文件,只有在另一个文件中没有定义 predicate/2 时才有帮助(否则我会得到类似“你真的确定要重新定义 predicate2/2 吗?”。在这里我不想重新定义一些东西保存另一个文件中的数据。
所以,我不知道如何使谓词“定义”。我需要 SWI-Prolog 或 SICStus Prolog 的解决方案。(不幸的是,这些版本没有定义谓词的部分,如视觉 Prolog)
prolog - Prolog(SWI-Prolog)中谓词“simple / 1”的含义是什么
我在看书时遇到问题。我看到一个程序使用谓词“简单”(我猜simple/1
)。?-help(simple)
我不知道这个谓词是什么意思,我在控制台中找不到它 。但是当我在控制台中尝试一些查询时,它的工作方式类似于:
我想这是某种谓词来确定参数是术语(或变量)还是复杂术语。
prolog - Prolog中缀运算符定义
我最近在学习 Prolog,发现用于定义中缀运算符的三种类型令人困惑。
指定运算符类型时,xfx、xfy 和 yfx 有什么区别?我用谷歌搜索了这个问题,没有发现任何有用的东西。
我尝试在 Prolog 中输入以下代码:
和输出:
结果对我来说没有什么不同。
prolog - 在 prolog 中编译元程序时出错
我正在尝试在 ECLiPSe Prolog 中实现一个元程序,这是我编写的代码 -
现在,当我使用 查询时sol(go(X)).
,我得到了错误accessing a procedure defined in another module in clause(X is 5, _292)
并且它中止了。我尝试清除所有顶级模块并重新打开 ECLiPSe 然后运行,但仍然是同样的错误。
可能是什么原因?
谢谢!
list - appendAll - 将列表追加到列表中的所有列表
我正在尝试找到一种将列表附加到列表中所有列表的方法。
就像是:
我对 prolog 还是很陌生,嵌套列表让我很失望。
我已经盯着这个几个小时了:
非常感谢任何帮助谢谢!
prolog - 有时我不知道 Prolog 中的“/”是什么意思
我在代码中看到这样使用的斜杠:
但有时我会在 Prolog 中看到“/1”“/2”等。
这些陈述(字符)是什么意思?
prolog - Prolog:声明一个操作符
我已经定义了!(阶乘)函数并将其注册为算术函数和运算符,以便我可以执行:A 是 6!。
现在我想定义!(奇数的阶乘),但方法相同 - 编写子句,注册算术函数和运算符,调用 A 是 7!- 导致 SyntaxError: Operator expected
如果可能,我应该如何注册!操作员 ?
是的,我意识到,!通常是切割。
prolog - 复杂抽象语法树的术语顺序
我有一个关于抽象语法树的问题。
特别是我想用特定的术语顺序对几棵树进行排序。
如何为具有以下属性的 AST 定义术语顺序:
- 对于几乎所有术语,顺序的行为与标准的内置术语顺序完全相同。
- 深深嵌套在 AST 中的是仿函数 pos/6 的术语,它们表示源位置。这些函子应该在项顺序中被忽略,即函子 pos 的所有项应该比较相等。
是否可以使用 'pos' 的特殊情况来扩展内置术语顺序?
什么是最有效的解决方案,什么是最易读的解决方案?
也许我还应该提到我们的 AST 可能非常大,我只是对一个 AST 进行了基准测试,它有 217479 个适当的函子(忽略零原子)
prolog - Prolog - 列表的不寻常的 cons 语法
我在 Lee Naish 的论文Higher-order logic programming in Prolog中遇到了一些不熟悉的 Prolog 语法。这是论文中的第一个代码示例:
我的困惑在于A.As
in isort(A.As, Bs) :-
。从上下文来看,它似乎是列表的另一种 cons 语法,相当于isort([A|As], Bs) :-
.
也N.H.L
似乎是一种更方便的说法[N|[H|L]]
。
但是 SWI Prolog 不会接受这种不寻常的语法(除非我做错了什么)。
有人认得吗?我的假设正确吗?哪个 Prolog 解释器接受它作为有效语法?