gpt4 book ai didi

不使用<<-赋值的递归函数?

转载 作者:行者123 更新时间:2023-12-04 04:39:35 26 4
gpt4 key购买 nike

有一个向量 x,我需要在一个内部函数中递归地改变它。在这里,我使用 <<- 来实现这个全局赋值运算符:

 outer <- function(){
x <- rep(1,5)
inner <- function(i){
if(i> length(x))return(x)
x[i] <<- 2 ## don't work with <-
inner(i+1)
}
inner(1)
}
outer()
[1] 2 2 2 2 2

我的问题是是否有另一个/更好的实现可以避免使用 <<- ?请注意,我不想替换 recursion ,而只是想问问是否有更好/更安全的设计?

最佳答案

通行证x作为参数?

outer <- function(){
x <- rep(1,5)
inner <- function(i,x){
if(i> length(x))return(x)
x[i] <- 2
inner(i+1,x)
}
inner(1,x)
}
outer()
#[1] 2 2 2 2 2

关于不使用<<-赋值的递归函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19118670/

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