Зад.1. Да се напише функция (fact-accum n), която изчислява факториела на дадено естествено число.
Зад.2. Да се напише функция (expt-accum x n), която повдига числото x на степен n (n - естествено число).
Зад.3. Да се напише функция (count-divisors n a b), която намира броя на делителите на естественото число n в интервала [a;b].
Зад.4. Да се напише функция (powers-sum x n), която намира сумата x + 2x2 + 3x3 + ... + nxn за дадени числа x и n (n - естествено число).
Зад.5. Да се напише функция (combinations n k), която за дадени естествени числа n и k изчислява биномния коефициент (n k).
Зад.6. Да се напише функция (prime-accum n), която проверява дали едно число е просто.
Зад.7. Да се напише функция (!! n), която изчислява n!! - произведението на всички числа, по-малки или равни на n, със същата четност:
(!! 5) -> 15    ; =1*3*5
(!! 10) -> 3840 ; =2*4*6*8*10
Зад.8. Да се напише функцията (sum-iter a b term next), която изчислява същото като (sum a b term next), но използва опашкова рекурсия.
Зад.9. Да се напише функцията (accum-iter op nv a b term next), която изчислява същото като (accumulate op nv a b term next), но използва опашкова рекурсия.
Зад.10. Да се напише функция от по-висок ред (derivative f), която приема функция като аргумент и връща нейната производна (също функция).
Зад.11. Да се напише функция от по-висок ред (constantly c), която по дадена константа c връща функцията f(x)=c:
(define forever-21 (constantly 21))
(forever-21 5) -> 21
(forever-21 10) -> 21
((constantly 21) 10) -> 21
Зад.12. Да се напише функция от по-висок ред (flip f), която приема функция като аргумент и връща същата функция, но с разменени места на нейните аргументи:
(define f (flip -))
(f 4 10) -> 6          ; = (- 10 4)
((flip f) 4 10) -> -6
Зад.13. Да се напише функция от по-висок ред (compose f g), която приема две функции и връща тяхната композиция:
(define (++ x) (+ x 1))
(define (-- x) (- x 1))
(define +- (compose ++ --))
(+- 5) -> 5 ; = (++ (-- 5))
Зад.14. Да се напише функцията от по-висок ред (complement p), която приема функция-предикат като аргумент и връща неговото отрицание:
(define (less-than-5? x) (< x 5))
(define f (complement less-than-5?))
(f 3) ; => #f
(f 5) ; => #t
(f 7) ; => #t
Last modified: Tuesday, 25 October 2016, 10:10 AM