【发布时间】:2016-05-17 10:34:02
【问题描述】:
我正在尝试在 Haskell 中为我的每周大学作业实施插入排序。这是我的插入和排序功能:
insert :: (Ord a) => a -> [a] -> [a]
insert a [] = [a]
insert a (a':as)
| a <= a' = a:a':as
| otherwise = a':insert a as
insertionSort :: (Ord a) => [a] -> [a]
insertionSort [] = []
insertionSort (a:as) = insert a (insertionSort as)
这可行,但我的导师这样指定签名:
insert :: (a -> a -> Bool) -> a -> [a] -> [a]
insertionSort :: (a -> a -> Bool) -> [a] -> [a]
我现在尝试的一切都失败了,编译器错误也没有真正的帮助。希望你们能帮我解决这个问题!
编辑:
我的导师给出的例子是这样的:
Main> insert (<) 3 [1,2,5,7,9]
[1,2,3,5,7,9]
Main> insSort (>) [7,9,1,2,5]
[9,7,5,2,1]
【问题讨论】: