Un esempio di funzione definita per ricorsione pił complessa:
(vedi Ackermann function)
Per definirla usiamo il comando Recall
Vediamone prima un uso per definire il fattoriale, che potrebbe essere definito pił
semplicemente mediante una iterazione:

fat <- function(n) if (n==0) 1 else Recall(n-1)*n
fat(0); fat(1); fat(10); fat(170)
# [1] 1
# [1] 1
# [1] 3628800
# [1] 7.257416e+306

Ecco, ora, la cosidetta funzione di Ackermann

Ack = function(m,n) {if(m==0) n+1 else{if(n==0) Recall(m-1,1) else Recall(m-1,Recall(m,n-1))}}

Riusciamo a calcolarne con R i valori solo per alcuni input. Esempi:

Ack(1,2)
# [1] 4
Ack(3,4)
# [1] 125
Ack(3,5)
# [1] 253
Ack(4,0)
# [1] 13

Sono pochi gli altri valori che si riescono a calcolare.
Ad esempio Ack(4,2) vale 2^65536 - 3: un numero enorme!