【发布时间】:2010-09-07 13:51:12
【问题描述】:
我正在使用 Data.Vector,并且目前需要计算用于计算加密哈希 (Sha1) 的向量的内容。我创建了以下代码。
dynamic :: a -> Int -> (Int -> Vector a -> a) -> Vector a
dynamic e n f =
let
start = Data.Vector.replicate n e
in step start 0
where
step vector i = if i==n then vector
else step (vector // [(i,f i vector)]) (i+1)
我创建了这个,以便填充向量的函数 f 可以访问部分 一路走来的结果。 Data.Vector 中肯定已经存在类似的东西,不是吗?
问题陈述如下:你要解决一个动态规划问题,其中完成的结果是一个数组。你知道数组大小的大小,并且你有一个递归函数来填充它。
【问题讨论】:
-
最后一行中出现的
n不应该都是i吗?
标签: arrays haskell vector memoization