gpt4 book ai didi

r - 我如何理解这个R函数?

转载 作者:行者123 更新时间:2023-12-04 09:43:56 25 4
gpt4 key购买 nike

mfibR <- local({
memo <- c(1, 1, rep(NA, 1000))
f <- function(x) {
if (x == 0)
return(0)
if (x < 0)
return(NA)
if (x > length(memo))
stop("x too big for implementation")
if (!is.na(memo[x]))
return(memo[x])
ans <- f(x - 2) + f(x - 1)
memo[x] <<- ans
ans
}
})

它没有函数体,但它实际上正确地返回了斐波那契数列。

最佳答案

来自 ?local帮助页面。

local evaluates an expression in a local environment. It is equivalent to evalq except that its default argument creates a new, empty environment. This is useful to create anonymous recursive functions and as a kind of limited namespace feature since variables defined in the environment are not visible from the outside.



请仔细阅读 local 的帮助页面中的示例。功能。它展示了如何使用 local 来创建匿名函数。 local将返回最后计算的表达式。

关于r - 我如何理解这个R函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19752504/

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