问题标签 [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.
prolog - 作业 Prolog 帮助:=:=/2:参数没有充分实例化
我不想把整个家庭作业和我所有的代码都发布到网上,所以我只会把具体问题放在哪里。如有必要,我可以添加和解释更多。
但本质上,我编写了我的代码,然后我的教授代码对其进行了测试。我的代码按照他的指示在逻辑上工作。在我的代码的这个特定片段中,我应该检查它是否有效。在第一个和最后一个参数中,列表表示[传教士、食人族、离岸近还是远]。我的代码工作并通过了所有测试,除非我的教授通过_
了 M1 和 M2。
我的代码
他的代码调用我的代码并导致错误。
错误:
所以我知道它正在崩溃,因为我老师的测试代码正在抛出一个_
for M1
,M2
因此它在尝试执行时出错_ =:= _ + 1
。但是,我无法更改他的测试代码,那么我该如何更改我的代码,而不是出现错误,而是返回失败?
recursion - Prolog - 参数没有充分实例化。递归深度
我是 prolog 的新手,想限制递归深度,但它不断抛出“参数没有充分实例化”错误。我会将问题概括为图表。
所以,有一条从 a 到 d 的路径: abcd 很容易检查两个顶点之间是否有路径:
现在我想将路径的长度限制为 N:
limitedPath(a,b,2)是真的,但是limitedPath(a,c,1)抛出“参数没有充分实例化”,我不明白原因。
list - 重复结果存储在 Prolog 的列表中
我正在尝试创建一个 Prolog 程序来解决循环方程:
f(1)=2, f(2)=5, f(n)=f(n-1)+2*f(n-2)
我使用下面的rec函数进行了管理,但是当我想将结果存储在列表中时(通过函数recList)我遇到了麻烦。
这是我的实现:
我的 recList 实现适用于通过第一个值调用它
->
但如果它比两个元素长,当我用第二个调用它时它不会:
请问有什么问题吗?
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]
为什么我会收到这样的错误?
prolog - findall 参数没有充分实例化
我已将代码简化为;
为什么这会因给定错误而失败。
prolog - Prolog findall - 参数没有充分实例化
下面的行失败,
我想要做的是找到bump()为真的时间实例,并找到该时间实例的相应位置()。当我删除顶部的位置定义并且只有事实时,它可以工作。我对 Prolog 完全陌生,所以请尽可能具体。
提前谢谢大家。
prolog - Prolog - 参数实例化不充分
我是 prolog 的新手,我已经构建了以下示例函数:
调用foo(L)
给出错误:ERROR: is/2: Arguments are not sufficiently instantiated
。
现在,我已经阅读了多个线程,其中经常出现的解决方案是使用clpfd
where A #= abs(X) + 0
。但是,当使用该解决方案时,我不一定会得到我想要的列表:
尤其是在使用更复杂的函数时,它也变得非常难以阅读。我期待的输出本质上是一个清晰而简单的列表: [-10...10]
。如果没有 clpfd,还有其他选择吗?我还通过这个过程了解到,我使用逻辑运算符得到了类似的错误,例如<, >, >=, =<
which pushes me to use between
。我来自 OOP 背景,我很难理解逻辑缺陷是什么。
谢谢您的帮助,
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
我应该怎么做才能解决这个问题?
prolog - 如何在 Prolog 的另一个模块中计算基本子句
在 list.pl 中有:
list.pl 中可能还有其他朋友关系和人员。
在popular.pl 我有:
我要这个:
但我明白了:
我该如何解决这个问题?
prolog - 简单的 Prolog Hangman 游戏错误
我正在尝试开发一个简单的刽子手游戏作为大学科目的家庭作业。这很简单,但我遇到了麻烦,我无法让它工作。
这是代码:
游戏的想法是让玩家尝试猜测“汽车”这个词,我把它放在一个列表 [c,a,r] 中。当玩家键入列表中的字母时,A=A+1。当玩家键入不在列表中的字母时,E=E+1。它应该不断重复,直到 A=3(玩家获胜)或 E=5(玩家失败 = 5 个错误字母)。但它没有按应有的方式工作。并且该程序永远无法重复循环以使玩家获胜或输掉游戏。
当我输入有效的信件时,我收到了这条消息:
当我输入无效信时,我收到了同样的信息:
拜托,在Prolog方面更有经验的人可以帮助我吗?
非常感谢。