问题标签 [instantiation-error]

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 投票
0 回答
62 浏览

prolog - 作业 Prolog 帮助:=:=/2:参数没有充分实例化

我不想把整个家庭作业和我所有的代码都发布到网上,所以我只会把具体问题放在哪里。如有必要,我可以添加和解释更多。

但本质上,我编写了我的代码,然后我的教授代码对其进行了测试。我的代码按照他的指示在逻辑上工作。在我的代码的这个特定片段中,我应该检查它是否有效。在第一个和最后一个参数中,列表表示[传教士、食人族、离岸近还是远]。我的代码工作并通过了所有测试,除非我的教授通过_了 M1 和 M2。

我的代码

他的代码调用我的代码并导致错误。

错误:

所以我知道它正在崩溃,因为我老师的测试代码正在抛出一个_for M1M2因此它在尝试执行时出错_ =:= _ + 1。但是,我无法更改他的测试代码,那么我该如何更改我的代码,而不是出现错误,而是返回失败?

0 投票
1 回答
174 浏览

recursion - Prolog - 参数没有充分实例化。递归深度

我是 prolog 的新手,想限制递归深度,但它不断抛出“参数没有充分实例化”错误。我会将问题概括为图表。

所以,有一条从 a 到 d 的路径: abcd 很容易检查两个顶点之间是否有路径:

现在我想将路径的长度限制为 N:

limitedPath(a,b,2)是真的,但是limitedPath(a,c,1)抛出“参数没有充分实例化”,我不明白原因。

0 投票
1 回答
79 浏览

list - 重复结果存储在 Prolog 的列表中

我正在尝试创建一个 Prolog 程序来解决循环方程:

f(1)=2, f(2)=5, f(n)=f(n-1)+2*f(n-2)

我使用下面的rec函数进行了管理,但是当我想将结果存储在列表中时(通过函数recList)我遇到了麻烦。
这是我的实现:

我的 recList 实现适用于通过第一个值调用它

->

但如果它比两个元素长,当我用第二个调用它时它不会:

请问有什么问题吗?

0 投票
2 回答
2812 浏览

list - Prolog - 参数没有充分实例化。列表/递归

我试图从给定列表'L'中获取最大数量并将其分配给一个变量,所以我曾经编写以下函数:

但是,在编译代码并max([1,2,3],X)SWI-Prolog中进行提示后,出现以下错误:

错误:参数未充分实例化错误:在:错误:
[9] _1064<1 错误:[8] max([1,2|...],_1092) 在 c:/users/kais/desktop/tp3。 pl:24 错误:[7]

为什么我会收到这样的错误?

0 投票
2 回答
354 浏览

prolog - findall 参数没有充分实例化

我已将代码简化为;

为什么这会因给定错误而失败。

0 投票
0 回答
160 浏览

prolog - Prolog findall - 参数没有充分实例化

下面的行失败,

我想要做的是找到bump()为真的时间实例,并找到该时间实例的相应位置()。当我删除顶部的位置定义并且只有事实时,它可以工作。我对 Prolog 完全陌生,所以请尽可能具体。

提前谢谢大家。

0 投票
1 回答
156 浏览

prolog - Prolog - 参数实例化不充分

我是 prolog 的新手,我已经构建了以下示例函数:

调用foo(L)给出错误:ERROR: is/2: Arguments are not sufficiently instantiated

现在,我已经阅读了多个线程,其中经常出现的解决方案是使用clpfdwhere A #= abs(X) + 0。但是,当使用该解决方案时,我不一定会得到我想要的列表:

尤其是在使用更复杂的函数时,它也变得非常难以阅读。我期待的输出本质上是一个清晰而简单的列表: [-10...10]如果没有 clpfd,还有其他选择吗?我还通过这个过程了解到,我使用逻辑运算符得到了类似的错误,例如<, >, >=, =<which pushes me to use between。我来自 OOP 背景,我很难理解逻辑缺陷是什么。

谢谢您的帮助,

0 投票
0 回答
293 浏览

prolog - is/2:参数没有充分实例化

我正在尝试编写一个序言代码来查找gcd 的Bezout 常量

我试过这段代码:

gcdCoef(A,B,X,Y) :- Z is A*X + B*Y, gcd(A,B,Z).

但是当我执行查询时?- gcdCoef(12,20,M,N).,它给了我错误:

"is/2: Arguments are not sufficiently instantiated"

请注意 gcd 可以正常工作:gcd(A,B,Z) means gcd(A,B) = Z

我应该怎么做才能解决这个问题?

0 投票
0 回答
52 浏览

prolog - 如何在 Prolog 的另一个模块中计算基本子句

在 list.pl 中有:

list.pl 中可能还有其他朋友关系和人员。

在popular.pl 我有:

我要这个:

但我明白了:

我该如何解决这个问题?

0 投票
0 回答
60 浏览

prolog - 简单的 Prolog Hangman 游戏错误

我正在尝试开发一个简单的刽子手游戏作为大学科目的家庭作业。这很简单,但我遇到了麻烦,我无法让它工作。

这是代码:

游戏的想法是让玩家尝试猜测“汽车”这个词,我把它放在一个列表 [c,a,r] 中。当玩家键入列表中的字母时,A=A+1。当玩家键入不在列表中的字母时,E=E+1。它应该不断重复,直到 A=​​3(玩家获胜)或 E=5(玩家失败 = 5 个错误字母)。但它没有按应有的方式工作。并且该程序永远无法重复循环以使玩家获胜或输掉游戏。

当我输入有效的信件时,我收到了这条消息:

当我输入无效信时,我收到了同样的信息:

拜托,在Prolog方面更有经验的人可以帮助我吗?

非常感谢。