小编Chr*_*isR的帖子

垃圾收集列表,同时对其执行IO操作

我想在Haskell中编写一个共轭梯度求解器,并希望使用惰性列表来解除停止规则和迭代中的信息输出.我的代码基本上是这样的:

data CGState = CGState { cgx :: Image
                       , cgp :: Image
                       , cgr :: Image
                       , cgr2 :: Double
                       }

cg :: Operator -> Image -> [CGState]
cg = [...]

runCG :: (CGState -> Bool) -> Operator -> Image -> IO Image
runCG stoprule op rhs = do
  let steps = takeWhile (not . stoprule) $ cg op rhs
  fmap last $ forM (zip [(1::Int)..] steps) $ \(n, cgs) -> do
      putStrLn $ show n ++ "  " …
Run Code Online (Sandbox Code Playgroud)

garbage-collection haskell lazy-evaluation

6
推荐指数
1
解决办法
97
查看次数