search for: factorial_tr_automatic_2

Displaying 4 results from an estimated 4 matches for "factorial_tr_automatic_2".

2018 Feb 27
2
Parallel assignments and goto
...lCC(function(escape) { ? ? ? ? repeat { ? ? ? ? ? ? n <- .tailr_n ? ? ? ? ? ? acc <- .tailr_acc ? ? ? ? ? ? if (n <= 1) { ? ? ? ? ? ? ? ? escape(acc) ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? .tailr_n <<- n - 1 ? ? ? ? ? ? ? ? .tailr_acc <<- n * acc ? ? ? ? ? ? } ? ? ? ? } ? ? }) } factorial_tr_automatic_2 <- function(n, acc = 1) { ? ? .tailr_env <- rlang::get_env() ? ? callCC(function(escape) { ? ? ? ? repeat { ? ? ? ? ? ? if (n <= 1) { ? ? ? ? ? ? ? ? escape(acc) ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? .tailr_env$.tailr_n <- n - 1 ? ? ? ? ? ? ? ? .tailr_env$.tailr_acc <- n * acc ? ? ? ?...
2018 Feb 27
0
Parallel assignments and goto
....tailr_n > acc <- .tailr_acc > if (n <= 1) { > escape(acc) > } else { > .tailr_n <<- n - 1 > .tailr_acc <<- n * acc > } > } > }) > } > > factorial_tr_automatic_2 <- function(n, acc = 1) { > .tailr_env <- rlang::get_env() > callCC(function(escape) { > repeat { > if (n <= 1) { > escape(acc) > } else { > .tailr_env$.tailr_n <- n - 1 > .ta...
2018 Feb 26
0
Parallel assignments and goto
...lCC(function(escape) { ? ? ? ? repeat { ? ? ? ? ? ? if (n <= 1) { ? ? ? ? ? ? ? ? escape(acc) ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? .tailr_n <- n - 1 ? ? ? ? ? ? ? ? .tailr_acc <- n * acc ? ? ? ? ? ? ? ? n <- .tailr_n ? ? ? ? ? ? ? ? acc <- .tailr_acc ? ? ? ? ? ? } ? ? ? ? } ? ? }) } factorial_tr_automatic_2 <- function(n, acc = 1) { ? ? .tailr_env <- rlang::get_env() ? ? callCC(function(escape) { ? ? ? ? repeat { ? ? ? ? ? ? if (n <= 1) { ? ? ? ? ? ? ? ? escape(acc) ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? .tailr_env$.tailr_n <- n - 1 ? ? ? ? ? ? ? ? .tailr_env$.tailr_acc <- n * acc ? ? ? ?...
2018 Feb 11
4
Parallel assignments and goto
Hi guys, I am working on some code for automatically translating recursive functions into looping functions to implemented tail-recursion optimisations. See https://github.com/mailund/tailr As a toy-example, consider the factorial function factorial <- function(n, acc = 1) { if (n <= 1) acc else factorial(n - 1, acc * n) } I can automatically translate this into the loop-version