受最近关于 Haskell 中二维网格的问题的启发,我想知道是否可以创建一个二维拉链来跟踪列表列表中的位置。列表上的一维拉链使我们能够真正有效地在大列表中本地移动(常见的例子是文本编辑器)。但是假设我们有这样的第二个维度:
grid =
[[ 1, 2, 3, 4, 5]
,[ 6, 7, 8, 9,10]
,[11,12,13,14,15]
,[16,17,18,19,20]
,[21,22,23,24,25]]
我们可以创建某种拉链数据结构来有效地在网格中左右移动而且上下移动吗?如果是这样,如果我们用无限列表的无限列表替换列表列表,我们还能获得有效的移动吗?