gpt4 book ai didi

prolog - 如果未声明输入,如何创建无限列表?

转载 作者:行者123 更新时间:2023-12-05 09:07:14 25 4
gpt4 key购买 nike

我编写了一个功能函数,根据输入的列表告诉用户列表是否已排序。但是,如果用户输入变量而不是列表作为输入,我想输出一个无限列表。我该怎么做?这是当前代码

ordered([]).
ordered([_]).
ordered([X,Y|Ys]) :- X =< Y , ordered( [Y|Ys] ).

这里是一些输入

? ordered([1,2,3]).
true
? ordered([1,5,2]).
false

我也希望变量像这样创建无限列表

? ordered(L).
L = [];
L = [_1322] ;
L = [_1322, _1323] ;
L = [_1322, _1323, _1324] ;
L = [_1322, _1323, _1324, _1325].

列表应该增加,直到用户退出,如图所示。

最佳答案

The list should increase until the user exits as shown.

解决方法:

ordered([]).
ordered([_]).
ordered([X,Y|Ys]) :- X #=< Y , ordered( [Y|Ys] ).

编辑:

SWI Prolog doc

The arithmetic expression X is less than or equal to Y. When reasoning over integers, replace (=<)/2 by #=</2 to obtain more general relations. See declarative integer arithmetic (section A.9.3).

关于prolog - 如果未声明输入,如何创建无限列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65211110/

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