按索引对 haskell 中的元组数组进行排序

标签 sorting haskell

我编写了一个代码来对元组列表的索引进行排序我尝试将ma​​pbubblesort()一起使用 避免使用循环

     bubblesort::(Ord t) => [t]->[t]
     bubblesort[x,y,z,xs]=
                if x<y then x : map bubblesort [y,z,xs]
                       else y : map bubblesort [x,z,xs]  

但它给了我一个错误:

ERROR line 20 - Type error in list
*** Expression     : [y,xs]
*** Term           : xs
*** Type           : [a]
*** Does not match : a
*** Because        : unification would give infinite type

*注意请仅给我指示

--编译器为在线编译器

最佳答案

我不知道这个问题的完整解决方案,但 bubblesort 需要 [t],但 bubblesort [x,z,xs] 将是 的函数>[[t]] -> [[t]]。因此每次,类型都会包裹在另一个 []

此外,您不需要进行映射冒泡排序。尝试记住 map 函数的确切作用,看看为什么这没有意义。

关于按索引对 haskell 中的元组数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11509552/

相关文章:

javascript - sort() 在 mozilla 和 opera 中无法正常工作

python - 根据python中的最高有效位对二进制矩阵列进行排序

php - 如何按键值对包含 stdClass 对象的多维数组进行排序?

haskell - (!!) 整数溢出运算符

haskell - 不知道如何正确输入我的 N 叉树

haskell - 如何使用 Scrap Your Boilerplate 来改造一棵树?

haskell - 如何返回合并元组的列表?

list - 在Flutter/Dart中对具有相同属性(时间戳)的不同对象的列表进行排序

c++ - 如何为第二个值 "double"订购 set< pair< pair<int, int>, double >> ?

oop - Haskell中一个简单的面向对象类 'Point'