gpt4 book ai didi

haskell - 通过模式匹配过滤列表

转载 作者:行者123 更新时间:2023-12-05 09:18:27 26 4
gpt4 key购买 nike

我如何过滤列表,保留与模式匹配的项目,删除不匹配的项目?

例如,如果我有一个列表列表,我想要一个函数...

singleItemLists :: [[Int]] -> [[Int]]

... 删除所有与模式 [x] 不匹配的项目。

理想情况下,答案应该相当简单,可以转换为其他模式。

最佳答案

基于显式模式匹配和filter 的惯用版本是:

{-# LANGUAGE LambdaCase #-}

isSingleton :: [x] -> Bool
isSingleton = \case [_] -> True ; _ -> False;

singletonLists :: [[x]] -> [[x]]
singletonLists = filter isSingleton

我相信这更具可读性。作为一个额外的优势,我们得到了 isSingleton,它可以被重用于其他目的。

isSingleton 在内部列表的 spine 和元素中是惰性的。

关于haskell - 通过模式匹配过滤列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44422753/

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