我接受了下面问题的答案,但似乎我误解了haskell中的Arrays是如何工作的.我以为他们只是加强了名单.阅读以下问题时请记住这一点.
我发现haskell中的单片阵列在将它们用于较大的阵列时效率很低.
我无法在haskell中找到非单片的数组实现.我需要的是O(1)时间查找多维数组.
是否有支持这种情况的数组实现?
编辑:我似乎误解了整体一词.问题是似乎haskell中的数组像列表一样处理数组.我可能错了.
EDIT2:低效代码的简短示例:
fibArray n = a where
  bnds = (0,n)
  a = array bnds [ (i, f i) | i <- range bnds ]
  f 0 = 0
  f 1 = 1
  f i = a!(i-1) + a!(i-2)
这是一个长度数组,n+1其中第i个字段包含第i个斐波纳契数.但由于haskell中的数组具有O(n)时间查找,因此计算需要O(n²)时间.