gpt4 book ai didi

list - 列表列表中的最短列表(Haskell)

转载 作者:行者123 更新时间:2023-12-04 14:51:52 26 4
gpt4 key购买 nike

如何在给定列表列表的情况下获得最短列表?

我有

 shortest :: [[a]] -> [a]
shortest [] = []

老实说,我真的不知道从那里去哪里感谢任何帮助

最佳答案

首先是你已经拥有的:

 shortest [] = []

我其实不太喜欢这个因为这意味着两者之间没有区别

shortest []

 shortest [[]]

但是,如果您喜欢这种行为,那么 Data.List 具有 minimumBy 类型

(a -> a -> Ordering) -> [a] -> a

所以我们首先需要 (a -> a -> Ordering) 我们可以用 compare 和一个有用的小函数 on 来自 Data.Function。 on 就像某种“喷嘴”,将一个函数应用于 2 个参数,然后再将它们送入另一个函数。

 cmp = compare `on` length

这给了我们

 shortest = minimumBy cmp

但是当给定一个空列表时这会中断

  shortest [] = []
shortest ls = minimumBy cmp ls

shortest [] = Nothing
shortest ls = Just $ minimumBy cmp ls

关于list - 列表列表中的最短列表(Haskell),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17882093/

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