【发布时间】:2021-09-29 05:38:54
【问题描述】:
我的教授要求我们在 Haskell 中实现冒泡排序。 问题应该很简单,但是他指定了这样的函数签名
bsort :: (a -> a -> Bool) -> [a] -> [a]
bsort = undefined
问题是a没有派生Ord,所以我不知道如何比较as。所以我想知道这是否可行或者他忘记添加(Ord a) =>?
【问题讨论】:
-
不派生
Ord是函数具有显式比较器a -> a -> Bool的原因。 -
bsort如图所示是bsort' :: Ord a => [a] -> [a]的概括。比较函数是一个显式参数,而不是从a的Ord实例推断出来的。
标签: haskell functional-programming higher-order-functions