我正在使用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)
Run Code Online (Sandbox Code Playgroud)
我创建了这个,以便填充向量的函数f可以访问沿途的部分结果.当然这样的东西必须已经存在于Data.Vector中,不是吗?
问题陈述如下:您将解决动态编程问题,其中完成的结果是数组.你知道数组大小的大小,你有一个递归函数来填充它.