Je trouve cette version de la fonction d'Ackermann et a essayé de le coder dans le schéma MIT Lisp sans succès:objet ne est pas applicable au MIT Scheme (un autre de Fonction Ackermann)
La Ackermann Fonction A (m, n)
Lorsque m = 0
A (m, n) = n + 1
Lorsque m> 0 et n = 0
A (m, n) = A (m-1 , 1)
Lorsque m> 0 et n> 0
A (m, n) = A (m-1, A (m, n-1))
(trouvé ici http://www.gfredericks.com/sandbox/arith/ackermann)
Mon code Scheme:
(define (acker2 m n)
(cond ((= m 0)
(+ n 1))
((and (> m 0)
(= n 0))
(acker2 (- m 1)
1))
((and (> m 0)
(> n 0))
(acker2 (- m 1)
(acker2 (m
(- n 1)))))))
maintenant des résultats:
(acker2 0 0) valeur: 1
(acker2 0 1) valeur: 2
(acker2 0 2) La valeur : 3
(acker2 2 2) objet 2 est pas applicable
(1 acker2 23) objet 1 ne soit pas applicable
(acker2 8 0) objet 7 est non applicable
Quelle est la solution?