구본헌
가입: 2012년 9월 5일 올린 글: 15
|
올려짐: 2012년12월4일 10:09 주제: 숙제7-2, example의 결과값 |
|
|
문제에 example을 4개 주셨는데요.
이거 결과값을 알려주시면.. 디버깅하는데 큰 도움이 될 것 같습니다 (:
코드: | (* example 1: polymorphic toys *)
let val I = fn x => x
val add = fn x => x.1 + x.1
1val const = fn n => 10
in
I I;
add(1, true) + add(2, "snu 310 fall 2011");
const 1 + const true + const "kwangkeun yi"
end |
코드: | (* example 2: polymorphism with imperatives *)
let val f = fn x => malloc x
in
let val a = f 10
val b = f "pl"
val c = f true
in
a := !a + 1;
b := "hw7";
c := !c or false
end
end |
코드: | (* example 3: polymorphic swap *)
let val swap =
fn order_pair =>
if (order_pair.1) (order_pair.2)
then (order_pair.2)
else (order_pair.2.2, order_pair.2.1)
in
swap(fn pair => pair.1 + 1 = pair.2, (1,2));
swap(fn pair => pair.1 or pair.2, (true, false))
end |
코드: | (* S K I combinators *)
let val I = fn x => x
val K = fn x => fn y => x
val S = fn x => fn y => fn z => (x z) (y z)
in
S (K (S I)) (S (K K) I) 1 (fn x => x+1)
end |
|
|