Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:创建具有任意长表达式的函数_R_Function_For Loop - Fatal编程技术网

R:创建具有任意长表达式的函数

R:创建具有任意长表达式的函数,r,function,for-loop,R,Function,For Loop,虽然我最初的问题比较笼统,但为了让事情更全面,我在下面阐述了它的部分情况,-我希望它的解决方案/答案可以作为更笼统问题的答案 问题: 要集成函数fx=…x^x^x^x…^x^x。。。在间隔0,1上通电x n次? 谢谢你的建议 附言:请不要试图用数学方法来解决问题或简化表达式,例如,用泰勒展开式来近似结果,不管怎样,因为这不是主要主题。然而,我尝试选择这样一个例子,它不应该有任何简单的变换 p.S.2:此处不需要回答的原始问题,因为预计张贴问题的答案对原始问题有效: 如果可以在R中使用任意长的表达

虽然我最初的问题比较笼统,但为了让事情更全面,我在下面阐述了它的部分情况,-我希望它的解决方案/答案可以作为更笼统问题的答案

问题:

要集成函数fx=…x^x^x^x…^x^x。。。在间隔0,1上通电x n次? 谢谢你的建议

附言:请不要试图用数学方法来解决问题或简化表达式,例如,用泰勒展开式来近似结果,不管怎样,因为这不是主要主题。然而,我尝试选择这样一个例子,它不应该有任何简单的变换

p.S.2:此处不需要回答的原始问题,因为预计张贴问题的答案对原始问题有效:

如果可以在R中使用任意长的表达式创建函数,则可以避免手动定义。例如,手动设置n=5的给定函数很容易:

f<-function(x) {
((((x^x)^x)^x)^x)^x
}
但是如果n=1000,或者1000,会怎么样呢?
这里似乎不适合简单的循环…

从Rhelp复制而来:您应该看看:

 # ?funprog   Should have worked but didn't. Try instead ...
 ?Reduce
函数参数的重复应用有几个例子。还有函数列表的组成

一个例子:

Funcall <- function(f, ...) f(...)  # sort of like `do.call`
Iterate <- function(f, n = 1)
   function(x) Reduce(Funcall, rep.int(list(f), n), x, right = TRUE)

Iterate(function(x) x^1.1, 30)(1.01)
#[1] 1.189612

在同一天在SO和Rhelp上交叉发布被认为是不好的形式。Would foo@flodel:我认为它实际上应该读为2^2^2,对于x=2的情况,它恰好也是2^2^2。@flodel:谢谢你的想法,可能,我不得不提到已经考虑过的简单循环方法。但对于这两种方法,我只能在给定输入值的情况下计算函数的值。这就是为什么在贴出的问题中,我要求取一个积分。例如,如果我玩得开心