问题标签 [prolog-dif]

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.

0 投票
5 回答
25253 浏览

prolog - Prolog中失败谓词的用途是什么?

我想不出我需要它的情况。

0 投票
1 回答
1568 浏览

compiler-errors - 为什么这个 prolog 程序不编译?

我有一个序言程序。这些行阻止它编译:

我收到以下错误:

0 投票
3 回答
2688 浏览

list - 具有多个相同元素的列表的排列Prolog

大家好,请原谅任何对语言的滥用

我需要创建 myPermutation(L1,L2)。给定一个列表 L1(它具有许多连续出现的元素)返回一个列表 L2,它是 L1 排序的方式,没有两个相同的连续元素)

示例:给定列表 L1[1,1,1,1,1,2,2,3,3,4,4,5,5] L2 应该是 [1,2,1,5,1,3,1 ,4,1,2,3,5,4] 我尝试过随机排列并检查每个排列的一致性,但速度很慢(L1 大约 24 cpu,元素超过 12 个)

唯一可能的解决方案是进行一致的排列而不是检查一个,但我该怎么做呢?

即使使用标准序言也可以做到这一点,但由于我对逻辑编程的理解很差,我无法理解它

谢谢 :D

0 投票
2 回答
6970 浏览

prolog - 从列表中删除简单的 Prolog

(这不是课程作业问题。只是我自己的个人学习。)

我正在尝试在 Prolog 中进行练习以从列表中删除元素。这是我的代码:

当我测试它时,我首先得到了一个很好的答案(即删除了所有的 X。)但随后回溯为我提供了列表的所有其他变体,其中一些或没有删除 X 的实例。

为什么会这样?为什么 H==X 的情况会落入最后一个子句?

0 投票
3 回答
223 浏览

prolog - Prolog 查询返回 H128

在下面的查询中,首先我得到X = H128的是,这是从哪里来的?另外为什么它返回是?是因为变量X实际上没有定义,我们正在测试那个条件吗?

0 投票
2 回答
344 浏览

list - 在Prolog中不统一删除列表的所有成员

可能重复:
Prolog 删除:不删除与 Element 统一的所有元素

在 Prolog 中,如果你这样写:

结果将是:

这是正常的,因为 _ 变量在第一个元素中与 1 绑定,它会搜索 (1,1) 的其他元素并删除它们。

有没有办法防止这种统一发生并删除表单(1,_)的所有成员。在这种情况下,结果必须是:L = [ (3, 4)]。

0 投票
3 回答
1210 浏览

syntax - Prolog 返回结果

对于家庭作业,所以没有明确的,请:

有没有办法让 Prolog 只返回程序找到的第一个目标,而忽略找到的其他目标?

出于说明目的,给定程序:

有没有办法让程序只返回第一个排列作为它的唯一解决方案?在以下情况下:

我们能不能

作为解决方案?

0 投票
3 回答
8761 浏览

prolog - Prolog 中的简化旅行推销员

我查看了类似的问题,但找不到与我的问题相关的任何内容。我正在努力寻找一个算法或一组“循环”来找到从CityAto的路径CityB,使用

事实。到目前为止,我设法做的事情如下,但它总是回溯write(X),到最后一次迭代,然后完成,这是我希望它做的,但只是在一定程度上。

例如,我不希望它打印出任何死胡同的城市名称,或者使用最终迭代。我希望它基本上形成一条从CityAto的路径,在路径上CityB写下它去往的城市的名称。

我希望有人能帮助我!

0 投票
1 回答
1044 浏览

prolog - 处理 prolog 上下文无关语法

给定一个 CFG

我想写一个谓词,如语法('S',句子),它产生所有可能的

使用最左推导,如果遇到的符号是终端,它应该打印出那个终端,如果遇到的符号是非终端 'S',它应该回溯并替换语法a S b 或 c 或 d之一并重复过程。

我不想要任何代码......只是帮助我一些技巧如何开始

0 投票
5 回答
102593 浏览

prolog - Prolog 中的逻辑“非”是什么?

我面临的问题有点微不足道。我想在 Prolog 中不使用逻辑,但似乎这not/1不是我想要的:

我查询:

而且我没有得到我想要的结果:(