gpt4 book ai didi

haskell - Haskell 中空列表的模式匹配

转载 作者:行者123 更新时间:2023-12-02 17:51:44 27 4
gpt4 key购买 nike

由于我是 Haskell 的新手,所以我对一切都不太熟悉。我尝试使用模式匹配来实现一个函数,但这不起作用,因为它给出了以下异常:Prelude.head 空列表。这是代码示例:

swapListToTowers::[[Bool]]->[[Bool]]
swapListToTowers [] = []
swapListToTowers xs = [head x| x <-xs]:swapListToTowers (cutOfFirstElements xs)


cutOfFirstElements::[[Bool]]->[[Bool]]
cutOfFirstElements [] = []
cutOfFirstElements xs = [tail x | x <- xs]

我认为捕获空列表的情况不太有效,是吗?预先感谢您的帮助!

最佳答案

我认为您缺少与内部列表匹配的模式,因此当您进行列表理解时,没有检查您的内部列表是否为空

我不确定你的函数是用来做什么的,但你可能想像这样拆分你的函数,这样你就可以自己处理空子列表

swapListToTowers::[[Bool]]->[[Bool]]
swapListToTowers [] = []
swapListToTowers xs = swapListToTowersInner (head xs) : ...

swapListToTowersInner :: [Bool] -> [Bool]
swapListToTowersInner [] = []
swapListToTowersInner xs = head xs

... similarly here for cutOfFirstElements

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

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