lunes, 21 de enero de 2008

Funcion Ackerman en Lenguaje Scheme

La función de Ackermann se define como:
A(m,n) = n+1 si m=0
A(m,n) = A(m-1,1) si m > 0 y n = 0
A(m,n) = A(m-1,A(m,n-1)) en otro caso
Implemente dicha función en Scheme. No pruebe la función para valores grandes ya que crece muy deprisa.

(define (Ackermann m n)
(if(= m 0) (+ n 1)
(if(= n 0) (Ackermann (- m 1) 1)
(Ackermann (- m 1) (Ackermann m (- n 1)))
)))