gpt4 book ai didi

recursion - 您将如何在 Prolog 中编写程序以使用递归打印从 1 到 10 的数字?

转载 作者:行者123 更新时间:2023-12-04 14:19:27 25 4
gpt4 key购买 nike

您将如何在 Prolog 中编写程序以使用递归打印从 1 到 10 的数字?

我已经尝试了以下方法但它不起作用,你能告诉我为什么吗?

print_numbers(10) :- write(10).

print_numbers(X) :- write(X),nl,X is X + 1, print_numbers(X).

最佳答案

您的代码非常接近工作。问题是你不能重用 X,一旦它被实例化,它就不能改变(更多细节见 here)。使用一个新变量,如下所示:

print_numbers(10) :- write(10), !.
print_numbers(X) :- write(X), nl, Next is X + 1, print_numbers(Next).

将剪切 (!) 添加到末尾将阻止解释器询问您是否想要查看更多结果。
?- print_numbers(1).
1
2
3
4
5
6
7
8
9
10

Yes
?-

关于recursion - 您将如何在 Prolog 中编写程序以使用递归打印从 1 到 10 的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3926729/

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