需要帮助在Prolog中编写简单的插入排序 - 继续获取错误

时间:2015-05-03 22:05:11

标签: sorting prolog insertion-sort

我有一个在Prolog中编写插入排序的简单任务。 以下是说明:

(10分)insertedSort(List,Sorted) 在prolog中编写插入排序程序。 您可以假设列表中的所有元素都是数字。

基本上,我必须给它一个列表,它将返回一个已排序值的列表。 在我自己写完之后完全失败了(尽管我看起来和其他所有内容相似 - 请参阅下面发布的代码),我决定在互联网上寻求帮助。 我已经尝试过在互联网上找到的插入排序的每个例子,而不是单一的工作。没有一个。

我不明白为什么。也许是因为我应该使用SWI prolog。

我不断收到以下两个错误:

ERROR: toplevel: Undefined procedure: insertionSort/2 (DWIM could not correct goal)

ERROR: toplevel: Undefined procedure: insertionSort/3 (DWIM could not correct goal)

我对这个愚蠢的错误非常厌倦。它没有任何帮助。为什么当我做同样的事情来调用另一个简单的程序(一个求和程序的东西)时,通过编译文件然后调用我想要的东西,它可以工作,但是使用这个insertSort,它不是吗?我很肯定我并没有错误地称它为。

到目前为止,这是我的代码。不喜欢它做任何事情。

insertionSort([],[]) :-
   !.
insertionSort([H|T], X) :-
   insertionSort(T, Y),
   insert(H, Y, X).

insert(A, [], [A]) :-
   !.
insert(A, [H|T], [A|L]) :-
   A =< H,
   insert(H, T, L).
insert(A, [H|T], [H|L]) :-
   A > H,
   insert(A, T, L).

就像我说的那样,我已经在互联网上尝试过二十多个+例子,所有这些都会出现错误信息,所以如果你的答案是把我联系到某事,我可以保证我已经筋疲力尽了(像这样:Prolog insertion sort - 它看起来不会起作用吗?嗯,它没有。)

拜托,我很沮丧。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

这是奇怪的机器。我的代码很完美。 它运作得很好。我不知道这些错误来自哪里

我也不知道如何将此问题标记为已解答