-
Notifications
You must be signed in to change notification settings - Fork 0
/
source.rkt
74 lines (51 loc) · 2.3 KB
/
source.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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#lang racket
; Exercise 8
(define read-examples (λ (filename)
(with-input-from-file filename
read)
))
(define examples (read-examples "examples.scm"))
; Exercise 9
(define add-example (λ (examples_list example)
(append examples_list (list example)))
)
;(add-example examples '(sun 10 90 yes -))
; Exercise 10
(define attribute (λ (attribute examples)
(if (eq? attribute 'perspective)
(map (λ (el) (car el)) (cdr examples))
(if (equal? attribute 'temperature)
(map (λ (el) (car (cdr el))) (cdr examples))
(if (equal? attribute 'humidity)
(map (λ (el) (car (cdr (cdr el)))) (cdr examples))
(if (equal? attribute 'windy)
(map (λ (el) (car (cdr (cdr (cdr el))))) (cdr examples))
(if (equal? attribute 'class)
(map (λ (el) (car (cdr (cdr (cdr (cdr el)))))) (cdr examples))
'()
)
)
)
)
))
)
; Exercise 11
(define mix (λ (first_list second_list)
(foldl (λ (el_first_list el_second_list acc)
(append acc (list el_first_list) (list el_second_list))
)
'()
first_list second_list)
)
)
; Exercise 12
(define separate (λ (proportion list_examples)
(append '() (list (take list_examples (exact-floor (round (* (length list_examples) proportion)))))
(list (take-right list_examples (- (length list_examples) (exact-floor (round (* (length list_examples) proportion))))))
)
)
)
; Exercise 13
(define folds (λ (size examples)
)
)