Parameters 当我调用的函数调用的参数超过我输入的参数时会发生什么

Parameters 当我调用的函数调用的参数超过我输入的参数时会发生什么,parameters,prolog,Parameters,Prolog,我目前正在学习Prolog,遇到了一些我不太理解的问题,我在任何地方都找不到答案 所以问题是当我有这样一个程序: a(X):- b(X, Y). b(X, Y):- c(X), ==(Y, 10). 那么Y将是什么?它将是一个随机数还是将在过程中被忽略?调用具有未知参数的函数的过程是否注定为false 如果你是通过看代码来自学的,那么请不要这样做,而是买一本书。你知道吗?Prolog有谓词,没有函数。这是有区别的a(X):-b(X,Y)。在这种情况下,Y是一个单例,您会得到一个警告。如果b实例

我目前正在学习Prolog,遇到了一些我不太理解的问题,我在任何地方都找不到答案

所以问题是当我有这样一个程序:

a(X):- b(X, Y).
b(X, Y):- c(X), ==(Y, 10).
那么
Y
将是什么?它将是一个随机数还是将在过程中被忽略?调用具有未知参数的函数的过程是否注定为false


如果你是通过看代码来自学的,那么请不要这样做,而是买一本书。你知道吗?Prolog有谓词,没有函数。这是有区别的
a(X):-b(X,Y)。
在这种情况下,
Y
是一个单例,您会得到一个警告。如果
b
实例化了
Y
,则结果将被忽略,否则将保持未绑定或未实例化状态
Y
在这个谓词子句中没有任何作用。这并不意味着谓词将失败。只要对
b(X,Y)
的调用成功,对
A(X)
的调用就会成功。而且,
Y
将被忽略。这可能是有意的,因此您可以编写
a(X):-b(X,u)。
以避免警告<代码>==(Y,10)可以写成
Y==10