gpt4 book ai didi

Haskell:为什么会这样——记忆化的一个例子?

转载 作者:行者123 更新时间:2023-12-04 01:46:58 25 4
gpt4 key购买 nike

嗨,我正在查看 Memoization 中的这个示例:

memoized_fib :: Int -> Integer
memoized_fib = (map fib [0 ..] !!)
where fib 0 = 0
fib 1 = 1
fib n = memoized_fib (n-2) + memoized_fib (n-1)

我只是想知道为什么这甚至可以工作,因为对我来说,如果您调用 memoized_fib(n-2)那么你正在“创建”一个新列表并用它做事,在你从它返回后,包含部分结果的列表会消失吗?所以 memorized_fib(n-1)根本不会从中受益吗?

最佳答案

memoized_fibCAF ,这与避免创建新东西的字面常量一样好。没有变量 ⇒ 没有东西可以将新东西绑定(bind)到 ⇒ 没有新东西的创建(简而言之)。

关于Haskell:为什么会这样——记忆化的一个例子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20935572/

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