问题标签 [logic-programming]
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.
type-systems - 什么类型的系统可以防止逻辑语言中的目标暂停?
从咖喱教程的第 3.13.3 节:
剩余的操作称为刚性操作,而狭窄的操作称为灵活操作。所有定义的操作都是灵活的,而大多数原始操作,如算术操作,都是刚性的,因为猜测对它们来说不是一个合理的选择。例如,前奏定义了一个列表连接操作,如下所示:
由于操作“++”是灵活的,我们可以使用它来搜索满足特定属性的列表:
另一方面,像加法“+”这样的预定义算术运算是刚性的。因此,使用逻辑变量作为参数调用“+”会失败:
库里似乎并没有提防写将被暂停的目标。什么类型的系统可以提前检测目标是否将被暂停?
programming-languages - 用于逻辑编程的编程语言比 Prolog 更新
有没有比 Prolog 专门用于逻辑编程的新语言?
prolog - Prolog Nim 游戏 - 超出本地堆栈错误
我最近一直在做一些Prolog。我读过序言的艺术这本书。他们在那里有一个 Nim 游戏实现。所以我将它重写为 SWI-Prolog,除了这个 Out of local stack 错误之外,一切似乎都很好。调试后我发现它似乎在程序的这一部分永远循环:
有人遇到过这种问题吗?对一些替代实施有什么建议吗?
algorithm - 寻求反向链接算法的参考
我正在寻找通过反向链接进行推理的算法的精确描述。每当我搜索时,我只会找到从 Russell 和 Norvig 中提取的标准示例,没有对算法的正式描述。
programming-languages - 非 Prolog 逻辑编程
有没有好的非 Prolog 或基于 Prolog 的逻辑编程语言?
谁有这方面的经验或有什么好的经验?
unification - 水星中的 ":=" 和 "=>"
我最近在 Mercury 中遇到了这个代码示例:
=
作为一名 Prolog 程序员,我想知道:正常的统一和这里使用的:=
or有什么区别?=>
在Mercury 参考文献中,这些运算符获得不同的优先级,但它们没有解释差异。
functional-programming - 函数返回“No Solution”而不是“Nothing”
我有一个表示谓词逻辑公式的标准数据类型。表示析取的自然演绎消除规则的函数可能如下所示:
当统一失败时,该函数不会评估为 Nothing,而是在 中不返回任何解决方案PACKS
:
我错过了什么,为什么在统一失败时不el
评估?Nothing
programming-languages - Erlang 中非短路布尔运算符的用途是什么?
我正在通过 LearnYouSomeErlang 网络书学习 Erlang。学习时让我印象深刻的一件事是非短路布尔连接和析取运算符,即;and
和or
。这些运算符的用例是什么?为什么要使用它们而不是andalso
and orelse
?
haskell - 整个 Haskell 会成为 Curry 的一部分吗?
我在维基百科上找到了咖喱。它说库里几乎是一个超集,但不是因为缺少什么。
我希望看到它支持整个 Haskell。他们是否计划将 Haskell 作为 Curry 的一部分实施?