Code Review
Compare your solutions
#| BEGIN (Введите свое решение) |#
(define f-iter
(lambda (n)
(define iter
(lambda (a b c count)
(if (= count n)
c
(iter b
c
(+ (* 3 a) (* 2 b) c)
(+ count 1)))))
(if (< n 3)
n
(iter 0 1 2 2))))
#| END |#
#| BEGIN (Введите свое решение) |#
(define (f-iter n)
(define (iter a b c count)
(if (= count n)
c
(iter (+ a (* 2 b) (* 3 c))
a
b
(+ count 1))))
(iter 2 1 0 0))
#| END |#
#| BEGIN (Введите свое решение) |#
(define f-rec
(lambda (n)
(if (< n 3)
n
(+ (f-rec (- n 1))
(* 2 (f-rec (- n 2)))
(* 3 (f-rec (- n 3)))))))
(define f f-rec)
(define (f-iter n)
(define (iter a b c count)
(if (= count n)
c
(iter (+ a (* 2 b) (* 3 c))
a
b
(+ count 1))))
(iter 2 1 0 0))
#| END |#
#| BEGIN (Введите свое решение) |#
(define f-rec
(lambda (n)
(if (< n 3)
n
(+ (f-rec (- n 1))
(* 2 (f-rec (- n 2)))
(* 3 (f-rec (- n 3)))))))
(define f f-rec)
(define (f-iter n)
(define (iter a b c count)
(if (= count n)
c
(iter (+ a (* 2 b) (* 3 c))
a
b
(+ count 1))))
(iter 2 1 0 0))
#| END |#
#| BEGIN (Введите свое решение) |#
(define f-iter
(lambda (n)
(define iter
(lambda (a b c count)
(if (= count n)
c
(iter b
c
(+ (* 3 a) (* 2 b) c)
(+ count 1)))))
(if (< n 3)
n
(iter 0 1 2 2))))
#| END |#
#| BEGIN (Введите свое решение) |#
(define (f-iter n)
(define (iter a b c count)
(if (= count n)
c
(iter (+ a (* 2 b) (* 3 c))
a
b
(+ count 1))))
(iter 2 1 0 0))
#| END |#
#| BEGIN (Введите свое решение) |#
(define f-rec
(lambda (n)
(if (< n 3)
n
(+ (f-rec (- n 1))
(* 2 (f-rec (- n 2)))
(* 3 (f-rec (- n 3)))))))
(define f f-rec)
(define (f-iter n)
(define (iter a b c count)
(if (= count n)
c
(iter (+ a (* 2 b) (* 3 c))
a
b
(+ count 1))))
(iter 2 1 0 0))
#| END |#
#| BEGIN (Введите свое решение) |#
(define f-rec
(lambda (n)
(if (< n 3)
n
(+ (f-rec (- n 1))
(* 2 (f-rec (- n 2)))
(* 3 (f-rec (- n 3)))))))
(define f f-rec)
(define (f-iter n)
(define (iter a b c count)
(if (= count n)
c
(iter (+ a (* 2 b) (* 3 c))
a
b
(+ count 1))))
(iter 2 1 0 0))
#| END |#