Мне нужно поточечно добавить некоторые функции (для домашней работы), я мог бы сделать это вручную, но, как большой поклонник функционального программирования, я хочу набрать несколько стилевых баллов.Размер стека и максимальная глубина рекурсии портят удовольствие.
Есть ли у кого-нибудь предложения о том, как реализовать это более эффективно?(Или я где-то ошибся?)
require(purrr)
A <- function(x) x+2
B <- function(y) y^2
C <- function(z) z*3
add_funs <- function(...){
reduce(list(...), function(a,b){
function(x){
a(x)+b(x)
}
})
}
test <- add_funs(A,B,C)
test(2)
# Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
# Error during wrapup: evaluation nested too deeply: infinite recursion / options(expressions=)?
test2 <- add_funs(A,B)
test2(2)
# Error: C stack usage 7969380 is too close to the limit