gpt4 book ai didi

arrays - Haskell - 检查二维列表的行数是否与列数相同

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

我有一个二维列表 [[Int]]在 Haskell 中,我想检查两件事:

  • 列表的行数是否与列数相同
  • 行是否具有相同数量的元素

  • 例如:
    [[1,2,3], [1,55,9]]具有与列相同的行数 - 此处为 2 - 并且每行具有相同数量的元素,即 3。

    但是
    [[1,2], [1,55], [4,7]]尽管行数和列数不相等,即 3r 2c,但每行中的元素数都相同。

    另一个例子:
    [[1,2], [1,55], [4,7,8]]行数与列数都不相同,每行的元素数也不相同。

    实际上步骤1包括步骤2,我说得对吗??

    我的尝试:

    所以到目前为止我尝试的是:
    listIsEqual :: [[Int]] -> Bool
    listIsEqual myList = (all (\x -> length x == (length myList)) )

    现在我收到以下错误消息:
    Couldn't match expected type `Bool' with actual type `[a0] -> Bool'
    In the return type of a call of `all'
    Probable cause: `all' is applied to too few arguments
    In the expression: (all (\ x -> length x == (length myList)))
    In an equation for `listIsEqual':
    listIsEqual myList = (all (\ x -> length x == (length myList)))

    谁能告诉我问题出在哪里?

    还有其他方法可以解决这个问题吗?

    最佳答案

    GHC 的错误消息并不总是最有帮助的,但在这种情况下它是正确的。

    Probable cause: `all' is applied to too few arguments



    事实上,你忘记了 all 的第二个参数:
    listIsEqual myList = all (\x -> length x == length myList) myList
    ^^^^^^

    关于arrays - Haskell - 检查二维列表的行数是否与列数相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16416474/

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