【发布时间】:2011-04-25 04:53:27
【问题描述】:
我已经阅读了很多关于这个主题的研究论文,他们通常认为数组是使用 Monads 实现的。但是这些论文都没有明确定义“类型”数组本身应该如何定义,它们只给出了使用 monad 访问或修改此类型的函数的定义。 在 Haskell 中如何实现具有 O(1) 时间来访问或修改索引元素的数组?! (如 STUArray 和 MArray)
【问题讨论】:
-
通常它们是通过调用外部库或 RTS 支持来实现的。
-
我想知道“数组是使用 Monads 实现的”是什么意思……听起来像“面包是用桌子烤的”。
-
@Alexey “implemented”在英文中的意思是“生效”。所以说 Haskell 中数组的可变性是使用 Monads 实现(“生效”或“实现”)的,这并没有错。使用无限流也可以实现相同的结果,但直观性要差得多。
标签: arrays haskell state monads mutable