Homework 7 SNU 4190.210 Fall 2015

Homework 7
SNU 4190.210 Fall 2015
Chung-Kil Hur
due: 12/03 (Thu) 23:59

s
ņ
q]
j_
3
q&
l
“
h
r
É
• Racket\
"
f Object x
6
l
.
• {
Ü
9
¼–
Ðá
Ԗ
ÐÕ
ªÏ
›`
þ
¦&
o
ñ

H(typeful programming) ƒ
_
v
þ
l
.
• 1
xÜ
l
¼–
Ð
{
9
7
Ž
x`
£
¦K
Å
ҍ
H 8̈
Š
\
â
"
fá
Ԗ
ÐÕ
ªA
b
ƒ
ç
_
v
þ
l
.
• —
¸Ñ
t(module) á
ý
Ԗ
ÐÕ
ª
Ab
l
ç
‘
rƒ
:
_
v
þ
l
.
Exercise 1 “Ó
t|
ü
×
æd
s
”
”
Ò
Ž
o

Á
º”
Racket\
"
f
6
§_
£
l
S
‰`
\
¦ t

HÓ
t|
ü
×
æd
s
”
”
Ò
Ž
oà

Ôo
\
¦ë
–Ž
ß
H
.
bstree-make : unit → bstree
bstree-add-elmt : bstree ∗ int ∗ τ → bool
bstree-del-elmt : bstree ∗ int → bool
bstree-find-elmt : bstree ∗ int → (τ + unit)
• bstree-make
Hq
#
Qe

”
Hs
”
Ò
Ž
o

Á
º\
¦ë
–Ž
ß
H
.
• bstree-add-elmt(t, k, v)
H k

H v
°
‫\כ‬
ú
 v

H °
‫`כ‬
ú
¦ Á
º\
 Æ
Òô
Ç
.
–€
ß
ë
• k


Hv
°
‫`כ‬
ú
¦ ”
°
‫כ‬s
ú
Á
º t\
s
p
e
%
”
3
€
l
”
r\
>
e

”
H°
‫`כ‬
ú
¦
h–
D
Ðî
r°
‫ כ‬v–
ú
ÐW
#
=
Q
HÊ
ê #t\
¦ì
Í8̈
ø
Šô
Ç
. Õ
ªX
t
O
·
§€
ú
¤
Œ
€
D
h–
Ðî
r°
‫ כ‬v\
ú
¦
Ò
Æ
“
¦ #f\
¦ì
Í8̈
ø
Šô
Ç
.
• bstree-del-elmt(t, k)
H k

Hv
°
‫`כ‬
ú
¦ ”
°
‫`כ‬
ú
¦
Á
º t\
"
f
•]
Œ
jô
Ç
.
k

Hv
°
‫`כ‬
ú
¦ ”
°
‫כ‬s
ú
Á
º t\
s
p
e
%
”
3
€
Õ
ª°
‫`כ‬
ú
¦
•]
Œ
j
“
¦ #t\
¦
Í8̈
ø
ì
Šô
Ç
. Õ
ªX
t
O
·
§€
ú
¤
Œ
€
Á
º
HÕ
ª@
/–
п
º“
¦ #f\
¦ì
Í8̈
ø
Šô
Ç
.
1
• bstree-find-elmt(t, k)
H k

Hv
°
‫`כ‬
ú
¦ ”
°
‫`כ‬
ú
¦
Á
º t\
"
f¹
Ô
1
"
fì
Í
ø
Šô
8̈
Ç
. ë
–{
ß
¹
9
ԓ
1
r
É
Ä
â
ºî
–„
ß
ô
ǽ
Ë(sum)`
+
¦
6
x
#
΢
aA
,
¤½
á
ËÜ
+
¼–
ÐÕ
ª°
‫כ‬
ú
¦ì
`
Í8̈
ø
Š
“
¦, Õ
ªX
t
O
ú
§
·“
r
É
Ä
â
ºš
¸
rA
É
¤½
á
ËÜ
+
¼–
Ð
Á
º°
‫כ‬s
ú
ì
Í8̈
ø
Šô
Ç
. î
–
ß
ô
„
ǽ
Ë_
+
l
S
‰õ
\
½
¨‰
³“
&
r›
É
¸“
§ ]
j/
Nô
B
Ç
`
‫כ‬
¦
6
xô
Ç
.
2
Exercise 2 “SKI 6
xÓ
oì

Í£
ø
x
6l
ml ”
HW4_
“SKI” 6
xÓ
oì

Í6
ø
xl
£
\
¦ Ocaml–
н
¨‰
³K
&
^
vr
. &
#
h
Q•
¸
6
§_
£
—
¸
t
ý
Ñ
{
SKIë
9
–
ß
u“
p
r&
É
_
ñ

a¸
)
—Ñ
t SkiLiquid`
ý
¦]
j
•K
Œ
"
f]
jØ
¦½
Ëm
+
.
module type SKI =
sig
type liquid = S
| K
| I
| V of string
(* variable *)
| M of liquid * liquid (* mix of two liquids *)
val react: liquid -> liquid
val pprint: liquid -> unit
end
2
2