search for: factorial_tr_automatic_1

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

2018 Feb 27
2
Parallel assignments and goto
...cc) } factorial_tr_manual <- function (n, acc = 1) { ? ? repeat { ? ? ? ? if (n <= 1) ? ? ? ? ? ? return(acc) ? ? ? ? else { ? ? ? ? ? ? .tailr_n <- n - 1 ? ? ? ? ? ? .tailr_acc <- acc * n ? ? ? ? ? ? n <- .tailr_n ? ? ? ? ? ? acc <- .tailr_acc ? ? ? ? ? ? next ? ? ? ? } ? ? } } factorial_tr_automatic_1 <- function(n, acc = 1) { ? ? .tailr_n <- n ? ? .tailr_acc <- acc ? ? callCC(function(escape) { ? ? ? ? repeat { ? ? ? ? ? ? n <- .tailr_n ? ? ? ? ? ? acc <- .tailr_acc ? ? ? ? ? ? if (n <= 1) { ? ? ? ? ? ? ? ? escape(acc) ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? .tailr_n <<- n...
2018 Feb 27
0
Parallel assignments and goto
...eat { > if (n <= 1) > return(acc) > else { > .tailr_n <- n - 1 > .tailr_acc <- acc * n > n <- .tailr_n > acc <- .tailr_acc > next > } > } > } > > factorial_tr_automatic_1 <- function(n, acc = 1) { > .tailr_n <- n > .tailr_acc <- acc > callCC(function(escape) { > repeat { > n <- .tailr_n > acc <- .tailr_acc > if (n <= 1) { > escape(acc) > }...
2018 Feb 26
0
Parallel assignments and goto
...cc) } factorial_tr_manual <- function (n, acc = 1) { ? ? repeat { ? ? ? ? if (n <= 1) ? ? ? ? ? ? return(acc) ? ? ? ? else { ? ? ? ? ? ? .tailr_n <- n - 1 ? ? ? ? ? ? .tailr_acc <- acc * n ? ? ? ? ? ? n <- .tailr_n ? ? ? ? ? ? acc <- .tailr_acc ? ? ? ? ? ? next ? ? ? ? } ? ? } } factorial_tr_automatic_1 <- function(n, acc = 1) { ? ? callCC(function(escape) { ? ? ? ? repeat { ? ? ? ? ? ? if (n <= 1) { ? ? ? ? ? ? ? ? escape(acc) ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? .tailr_n <- n - 1 ? ? ? ? ? ? ? ? .tailr_acc <- n * acc ? ? ? ? ? ? ? ? n <- .tailr_n ? ? ? ? ? ? ? ? acc <- .tailr_a...
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