gpt4 book ai didi

prolog - 序言中带有天花板的事实形成

转载 作者:行者123 更新时间:2023-12-01 12:25:56 26 4
gpt4 key购买 nike

我可以定义以下形式的事实吗?

test(X, ceiling(sqrt(X))). 

哪里, Xceiling(sqrt(X)) 相关.

我想,我可以做以下事情来接收所需的输出,
test(X, Y) :- Y is ceiling(sqrt(X)).

最佳答案

您可以定义:test(X, ceiling(sqrt(X))).这意味着你有上述形式的事实原子,所以如果你查询:

?- test(X, ceiling(sqrt(X))).
true.

因为你定义了这个子句。
但请注意,如果您查询:
?- test(1.5, 2).
false.

它返回 false,因为 2 是天花板(sqrt(1.5)),但谓词正在等待像天花板(sqrt(1.5))这样的语法而不是结果 2。

另一个例子:
?- test(1.5, Y).
Y = ceiling(sqrt(1.5)).


?- test(X,ceiling(sqrt(1.5))).
X = 1.5.

另请注意:
test(X) :- X is ceiling(sqrt(X)).

对于任何输入 X 总是失败(因为没有这样的 X 等于天花板(sqrt(X))。)并且由于 is/2 查询 test(X) 将有实例化问题。

也许你想写的是:
test(X,X1) :-  X1 is ceiling(sqrt(X)).

关于prolog - 序言中带有天花板的事实形成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39689314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com