-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtemp.rkt
36 lines (25 loc) · 1.41 KB
/
temp.rkt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#lang racket
(define (square x) (* x x))
(define (iter func count res)
(if (= count 0)
res
(iter func (- count 1) (func res))))
(define (rep f n)
(lambda (x) (iter f n x)))
((rep square 2) 5)
;((rep inc 4) 5)
#|
2. Repeated application
Если f это численная функция, и n это положительное целое число,
то мы можем сформировать n-ное применение функции f: это функция,
чье значение для х равно f(f(...(f(x))...)).
Например, если f это функция x = x + 1, то n-ное применение функции f это x = x + n.
Если f это операция возведения во вторую степень,
то n-ное применение функции f это возведение в степень 2^n.
В файле repeated.rkt создайте процедуру, которая принимает в качестве аргумента
другую процедуру (которая вычисляет f), и целое положительное число n;
и возвращает процедуру, которая вычисляет n-ное применение функции f.
В итоге вашу процедуру можно будет использовать следующим образом:
((repeated square 2) 5)
625
|#