我有一个在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 - 它看起来不会起作用吗?嗯,它没有。)
拜托,我很沮丧。任何帮助表示赞赏。
答案 0 :(得分:0)
这是奇怪的机器。我的代码很完美。 它运作得很好。我不知道这些错误来自哪里
我也不知道如何将此问题标记为已解答