0

我正在用 prolog 编写一个程序,需要一些帮助。这可能被认为是一个家庭作业问题。

我有两种排序算法编写和工作。我的目标是传入一个列表,如果它大于或等于长度 5,使用排序方法 1。如果小于 5,使用排序方法 2。排序方法都返回排序列表,而 main 方法它们用于应该返回排序列表。

这是我正在使用的主要方法:

%Main method to run program
main(List, Result) :-
size(List, N),
(   N => 5;
    sort1(List, X),
sort2(List, X)).

但是,每次我尝试运行它时,都会出现错误:

?- 主要([1,5,1,4,2,6,1])。错误:未定义的过程:main/1 错误:但是,有以下定义:错误:main/2 false。

我不确定这个错误是什么意思。有人可以帮我吗?

4

1 回答 1

2

您必须更正语法。根据您的描述:

main(List, Result) :-
    length(List, N),
    (   N >= 5
    ->  sort1(List, Result)
    ;   sort2(List, Result)
    ).
于 2013-04-11T19:05:00.193 回答