【发布时间】:2011-06-26 19:31:24
【问题描述】:
我有点卡住如何重写以下严格评估的列表理解以使用 seq 而不是 bang 模式:
zipWith' f l1 l2 = [ f e1 e2 | (!e1, !e2) <- zip l1 l2 ]
有什么想法吗?
我试过了
zipWith' f l1 l2 = [ e1 `seq` e2 `seq` f e1 e2 | (e1, e2) <- zip l1 l2 ]
但不幸的是,这并不强制对 WHNF 进行评估。
【问题讨论】:
标签: haskell lazy-evaluation strictness