【发布时间】:2016-04-13 23:03:04
【问题描述】:
我在实现一个应该多次调用自身的函数时遇到了一些麻烦。每次它更新它的值并提高它的准确性。在这个过程中它调用了其他函数,但我知道它会一直工作到:
Type = [Double]
*All lists; including type: Same, but not predetermined length.
f0 :: Double -> [[Double]] -> [Double] -> Type -> Type
函数调用的典型例子:
f0 1.0 [[1.0, 0.5, 1.0], [1.0, -1.0, 1.0]] [1.0, 0.0] (initTypeLength 2)
我想做什么:
f1 :: Int -> Double -> [[Double]] -> [Double] -> Type -> Type
... 其中“Int” (i) 调用迭代次数,递归地使用 f0,保持所有参数相同,但类型除外,该类型已更新。
不确定 f0 是否相关,但以防万一:
f0 a (x:xs) (y:ys) type = f_other a xs ys
$ f_yet_another a x y type
让我感到困惑的是在何处以及如何陈述论点。
总结一下:这里的一切都是静态的,除了一个列表; “类型”,每次迭代都会更新。我怎么称呼这个?我觉得这很明显,但我似乎无法以haskell理解的方式弄清楚。
【问题讨论】:
标签: haskell recursion iteration