Код Ревью

Сравни свои решения

    #| Для этого упражнения нет проверок.
Любое решение будет считаться успешным ответом. |#
#lang sicp

#| Следующая процедура вычисляет математическую функцию, называемую функцией Аккермана.

(define (A x y)
  (cond ((= y 0) 0)
        ((= x 0) (* 2 y))
        ((= y 1) 2)
        (else (A (- x 1)
                 (A x (- y 1))))))
Каковы значения следующих выражений?

(A 1 10)

(A 2 4)

(A 3 3)
Рассмотрим следующие процедуры, где A — процедура, определенная выше:

(define (f n) (A 0 n))

(define (g n) (A 1 n))

(define (h n) (A 2 n))

(define (k n) (* 5 n n))
Дайте краткие математические определения функций,
вычисляемых процедурами f, g и h для положительных целых значений n .
Например, (k n) вычисляет 5 * n * n . |#

(define (A x y)
  (cond ((= y 0) 0)
        ((= x 0) (* 2 y))
        ((= y 1) 2)
        (else (A (- x 1)
                 (A x (- y 1))))))

(A 1 10) ; 1024

(A 2 4) ; 65536

(A 3 3) ; 65536

; (define (f n) (A 0 n))
; (f n) вычисляет 2 * n

; (define (g n) (A 1 n))
; (g n) вычисляет 2 ^ n

; (define (h n) (A 2 n))
; (h n) вычисляет (2 ^ 2 ^ 2 ...  ^ 2) n раз