gpt4 book ai didi

prolog - call/1 和 normal 子句有什么区别?

转载 作者:行者123 更新时间:2023-12-04 18:57:36 24 4
gpt4 key购买 nike

如果我有 :

 run(X) :- X.

有什么区别:
... :- ..., call(Y).

和 :
... :- ..., run(Y).

最佳答案

如果你有:

运行(X):- X。

那么你可以看到它相当于使用了call/1明确通过

?- 列表(运行/1)。
运行(A):-
调用(A)。

由此可知call(X)也声明性地等效于 run(X) .但是,除非您的 Prolog 编译器执行某种内联,否则使用 call/1几乎可以肯定,直接比调用 run/1 至少非常非常有效。并调用 call/1 .

作为思考的食物,想想像 run(!) 这样的案例。 ,以及一般如何使用 !如果 X,在元调用中可能会影响程序不等于 call(X) .

关于prolog - call/1 和 normal 子句有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48652069/

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