gpt4 book ai didi

haskell - 嵌套的空列表

转载 作者:行者123 更新时间:2023-12-04 11:29:38 25 4
gpt4 key购买 nike

你好 Haskellers 和 Haskellettes,

阅读时http://learnyouahaskell.com/我的一个 friend 提出了一个问题:

是否可以在 Haskell 中编写一个递归函数,如果所有 sub-sub-_-sublists 都为空,则返回 True。我的第一个猜测是 - 应该是 - 但我在编写类型注释时遇到了一个大问题。

他尝试了类似的东西

nullRec l = if null l
then True
else if [] `elem` l
then nullRec (head [l]) && nullRec (tail l)
else False

这是 - 不工作 - :-)

我想出了类似的东西
  • 用 concat 折叠 - 得到一个长列表
    (给我实现问题)
  • 或制作无限的树状数据类型 - 并从列表中制作
    (尚未实现)

  • 但对于这个问题,后者听起来有点矫枉过正。
    你的想法是什么——在这样一个阳光明媚的星期天;-)

    提前致谢

    作为对所有评论的回应——我想补充一下这种糟糕的风格
    这只是一个 实验 !
    不要在家尝试做这个! ;-)

    最佳答案

    类型类怎么样?

    {-# LANGUAGE FlexibleInstances, OverlappingInstances #-}

    class NullRec a where
    nullRec :: a -> Bool

    instance NullRec a => NullRec [a] where
    nullRec [] = True
    nullRec ls = all nullRec ls

    instance NullRec a where
    nullRec _ = False

    main = print . nullRec $ ([[[[()]]]] :: [[[[()]]]])

    关于haskell - 嵌套的空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6641703/

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