Sorting Haskell比较排序算法

Sorting Haskell比较排序算法,sorting,haskell,iteration,Sorting,Haskell,Iteration,基本上,我想写一个函数,将单个列表作为输入,对该列表应用排序算法列表,然后返回一个布尔值,指示它们是否都生成了排序列表 (checksorted是我编写的一个函数,它接受一个列表并返回一个布尔值,指示它是否已排序) 这是我开始使用的代码: sortCheck :: Ord a => [a] -> Bool sortCheck xs = checkSorted(mergeSort xs) && checkSorted(insertionSort xs) &&a

基本上,我想写一个函数,将单个列表作为输入,对该列表应用排序算法列表,然后返回一个布尔值,指示它们是否都生成了排序列表

checksorted
是我编写的一个函数,它接受一个列表并返回一个布尔值,指示它是否已排序)

这是我开始使用的代码:

sortCheck :: Ord a => [a] -> Bool

sortCheck xs = checkSorted(mergeSort xs) && checkSorted(insertionSort xs) && checkSorted(qSort xs)
当我试图编译此文件时,会出现某种类型的错误:
无法推断(a~Int)

我如何使用无限列表来实现这一点

编辑:这是我的checksorted算法

checkSorted :: Ord a => [a] -> Bool
checkSorted [] = True
checkSorted [x] = True
checkSorted (x:y:xs) = x <= y && checkSorted (y:xs)
checkSorted::Ord a=>[a]->Bool
checkSorted[]=True
checkSorted[x]=True

checkSorted(x:y:xs)=x至少一个
checkSorted
mergesort
insertionSort
qsort
必须采用
[Int]
类型才能获得该错误

错误消息告诉您,您指定
sortCheck
应适用于任何类型的列表,只要该类型具有
Ord
实例,但从正文推断的类型需要
Int
列表


~
是类型相等约束。
(a~Int)
可以理解为“
a
等于
Int

您必须显示
检查排序功能。我怀疑它的类型是
[Int]->Bool
,而不是
[a]->Bool
。排序函数的声明是什么?