与 Haskell 中的列表列表作斗争

2024-03-31

有人可以帮我实现这个功能吗?

 getCell :: [[Int]] -> Int -> Int -> Int  

其中 m i j 是列表 m 的行和列的索引。 索引从零开始,每行的大小相同。 如果 i 或 j 无效,该函数应返回 -1。

我正在进行 Haskell 考试,尽管事实上这可能会出现,但我仍然想知道我该怎么做,而且因为我从未在 Haskell 中使用过列表列表,所以我不知道如何开始解决这个问题。你能帮我个忙吗 ?

这是我到目前为止所做的:

getCell :: [[Int]] -> Int -> Int -> Int
getCell [] _ _ = "the list is empty!"
getCell zs x y =
    if x > length zs || y > length (z:zs)  then -1 else
        let row = [x| x == !! head z <- zs]
            column = ...

我不知道如何找到行和列


这应该可以使用(!!)操作员。首先检查索引是否在列表中,然后使用访问该索引处的元素(!!).

getCell m i j = if i >= length m then -1
                else let
                         m0 = m !! i
                     in if j >= length m0 then -1
                        else m0 !! j
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与 Haskell 中的列表列表作斗争 的相关文章

随机推荐