Chr*_*ski 6 haskell memoization
我有一个Haskell程序执行非线性性能(更差O(n)
).
我正在尝试调查是否在函数上进行了memoization,我可以验证这个吗?我熟悉GHC分析 - 但我不太确定我应该关注哪些值?
解决方法也只是插入一些值并观察执行时间 - 但这并不理想.
据我所知,Haskell 中没有自动记忆功能。
也就是说,GHC 中似乎有一个优化,可以缓存无参数函数的值,如下所示
rightTriangles = [ (a,b,c) |
c <- [1..],
b <- [1..c],
a <- [1..b],
a^2 + b^2 == c^2]
Run Code Online (Sandbox Code Playgroud)
如果您在 GHCi 中尝试以下两次,您会发现第二次调用要快得多:
ghci > take 500 rightTriangles
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
153 次 |
最近记录: |