Упражнение №4 на гр.2
Зад.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