#lang scheme ; Syntactic sugar (define ^ expt) (define << arithmetic-shift) ; Как можно получать степени двойки: ; арифметически, алгоритмически, императивно ; и рекурсивно. (* 2 2 2) (^ 2 3) (<< 1 3) (define nexpt (λ (n p) (cond ((< p 1) 1) (else (* n (nexpt n (- p 1))))))) (nexpt 2 3) ; ; 8 ; 8 ; 8 ; 8 ;