gpt4 book ai didi

sorting - 在 Haskell 中,如何使用内置的 sortBy 函数对对(元组)列表进行排序?

转载 作者:行者123 更新时间:2023-12-03 07:37:53 29 4
gpt4 key购买 nike

我是 Haskell 的初学者,所以请耐心等待。 (昨天刚开始学习!)我如何主要按元组的第一个组成部分(从最高到最小),然后按第二个组成部分(从最小到最高)对元组列表进行排序?示例输入/输出如下:

[(1, "b"), (1, "a"), (2, "b"), (2, "a")] (输入)

[(1, "a"), (2, "a"), (1, "b"), (2, "b")] (中间步骤)

[(2, "a"), (2, "b"), (1, "a"), (1, "b")] (输出)

我尝试使用以下命令,但输出错误:

sortGT a b = GT

sortBy sortGT lst

我确信我可以使用 sortBy 来做到这一点只是,但我自己却无法弄清楚。任何帮助将不胜感激!

最佳答案

您需要构造函数sortGT,以便它按照您想要的方式比较对:

sortGT (a1, b1) (a2, b2)
| a1 < a2 = GT
| a1 > a2 = LT
| a1 == a2 = compare b1 b2


使用它你会得到以下结果(我使用 ghci):

*Main Data.List> sortBy sortGT [(1, "b"), (1, "a"), (2, "b"), (2, "a")]
[(2,"a"),(2,"b"),(1,"a"),(1,"b")]

关于sorting - 在 Haskell 中,如何使用内置的 sortBy 函数对对(元组)列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2349798/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com