【发布时间】:2012-02-12 20:54:21
【问题描述】:
受最近关于 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]]
我们是否可以创建某种拉链数据结构来有效地在此处的网格中左右移动以及上下移动?如果是这样,如果我们将列表列表替换为无限列表的无限列表,我们仍然可以获得有效的移动吗?
【问题讨论】:
标签: haskell data-structures functional-programming multidimensional-array zipper