在此示例中如何访问没有列表的矩阵元素?

How to access the elements of a matrix without lists in this example?

我是 haskell 的新手。我们的任务是编写一个计算方阵维数的算法。但是我们不应该使用列表。但是我不知道如何访问矩阵的每个元素,它是这样给出的:

matrixA 1 1 = 0
matrixA 1 2 = 42
matrixA 1 3 = 1337
matrixA 2 1 = 501
matrixA 2 2 = 314
matrixA 2 3 = 301
matrixA 3 1 = 13
matrixA 3 2 = 161
matrixA 3 3 = 271
matrixA _ _ = -1

要访问行 i 和列 j 的矩阵元素,您可以简单地使用 matrixA i j。事实上,matrixA 是一个将两个索引映射到矩阵元素的函数。

我猜最后一个 -1 案例代表了一个无效值,意思是 "indexes outside the matrix"。因此,似乎要找到大小,您只需查询具有越来越大 row/column 索引的矩阵,直到得到 -1。解决这个问题的一个基本方法是递归地进行。