gpt4 book ai didi

haskell - 如何确定 Haskell 中是否正在内存某个函数?

转载 作者:行者123 更新时间:2023-12-02 15:24:49 24 4
gpt4 key购买 nike

我有一个 Haskell 程序,它执行非线性性能(比 O(n) 更糟糕)。

我正在尝试调查某个函数是否正在发生记忆化,我可以验证这一点吗?我熟悉 GHC 分析 - 但我不太确定应该查看哪些值?

解决方法也只是插入一些值并观察执行时间 - 但这并不理想。

最佳答案

据我所知,Haskell 中没有自动内存功能。

也就是说,GHC 中似乎有一个优化,可以缓存无参数函数的值,如下所示

rightTriangles = [ (a,b,c) | 
c <- [1..],
b <- [1..c],
a <- [1..b],
a^2 + b^2 == c^2]

如果您在 GHCi 中尝试以下两次,您会发现第二次调用要快得多:

ghci > take 500 rightTriangles

关于haskell - 如何确定 Haskell 中是否正在内存某个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54004969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com