【问题标题】:Comparison without deriving Ord比较而不导出 Ord
【发布时间】: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] 的概括。比较函数是一个显式参数,而不是从 aOrd 实例推断出来的。

标签: haskell functional-programming higher-order-functions


【解决方案1】:

是的,这是可行的,不,他没有忘记。这里有一个提示:

bsort (<=) = undefined

【讨论】:

    猜你喜欢
    • 2012-10-31
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 2015-02-24
    • 1970-01-01
    • 2022-10-12
    • 1970-01-01
    相关资源
    最近更新 更多