구상준
가입: 2009년 9월 18일 올린 글: 27
|
올려짐: 2010년9월14일 7:17 주제: ex8에 대한 간단한 testcase |
|
|
보기 어려우신 것에 대해서는 죄송하게 생각합니다.
# tree0;;
- : tree =
NODE
[NODE [LEAF "a"; LEAF "*"; LEAF "b"]; LEAF "+";
NODE [LEAF "c"; LEAF "*"; LEAF "d"]]
(* tree0 is formed from (a*b) + (c*d) *)
# let ex1 = LOC(tree0, TOP);;
val ex1 : location =
LOC
(NODE
[NODE [LEAF "a"; LEAF "*"; LEAF "b"]; LEAF "+";
NODE [LEAF "c"; LEAF "*"; LEAF "d"]],
TOP)
# goUp ex1;;
Exception: NOMOVE "up of top".
# let ex2 = goDown ex1;;
val ex2 : location =
LOC (NODE [LEAF "a"; LEAF "*"; LEAF "b"],
HAND ([], TOP, [LEAF "+"; NODE [LEAF "c"; LEAF "*"; LEAF "d"]]))
# let ex3 = goRight ex2;;
val ex3 : location =
LOC (LEAF "+",
HAND ([NODE [LEAF "a"; LEAF "*"; LEAF "b"]], TOP,
[NODE [LEAF "c"; LEAF "*"; LEAF "d"]]))
# (ex2 = (goLeft ex3));;
- : bool = true
# goDown ex3;;
Exception: NOMOVE "can't go down since it is a leaf".
# let ex4 = goDown ex2;;
val ex4 : location =
LOC (LEAF "a",
HAND ([], HAND ([], TOP, [LEAF "+"; NODE [LEAF "c"; LEAF "*"; LEAF "d"]]),
[LEAF "*"; LEAF "b"]))
# let ex5 = goRight ex4;;
val ex5 : location =
LOC (LEAF "*",
HAND ([LEAF "a"],
HAND ([], TOP, [LEAF "+"; NODE [LEAF "c"; LEAF "*"; LEAF "d"]]),
[LEAF "b"]))
# ((goUp ex4) = (goUp ex5));;
- : bool = true
# let example_in_pdf = (goRight (goDown (goRight ex3)));;
val example_in_pdf : location =
LOC (LEAF "*",
HAND ([LEAF "c"],
HAND ([LEAF "+"; NODE [LEAF "a"; LEAF "*"; LEAF "b"]], TOP, []),
[LEAF "d"]))
------------------------------------------------------------------------------
# tree1;;
- : tree =
NODE
[NODE
[NODE [LEAF "a"; LEAF "/"; LEAF "b"]; LEAF "-";
NODE [NODE [LEAF "c"; LEAF "*"; LEAF "d"]; LEAF "+"; LEAF "e"]];
LEAF "%"; LEAF "F"]
(* tree is formed from (((a/b) - ((c*d) +e)) % F) *)
# let hardex1 = LOC(tree1,TOP);;
val hardex1 : location =
LOC
(NODE
[NODE
[NODE [LEAF "a"; LEAF "/"; LEAF "b"]; LEAF "-";
NODE [NODE [LEAF "c"; LEAF "*"; LEAF "d"]; LEAF "+"; LEAF "e"]];
LEAF "%"; LEAF "F"],
TOP)
# let hardex2 = (goDown hardex1);;
val hardex2 : location =
LOC
(NODE
[NODE [LEAF "a"; LEAF "/"; LEAF "b"]; LEAF "-";
NODE [NODE [LEAF "c"; LEAF "*"; LEAF "d"]; LEAF "+"; LEAF "e"]],
HAND ([], TOP, [LEAF "%"; LEAF "F"]))
# let hardex3 = (goDown hardex2);;
val hardex3 : location =
LOC (NODE [LEAF "a"; LEAF "/"; LEAF "b"],
HAND ([], HAND ([], TOP, [LEAF "%"; LEAF "F"]),
[LEAF "-";
NODE [NODE [LEAF "c"; LEAF "*"; LEAF "d"]; LEAF "+"; LEAF "e"]]))
# let hardex4 = (goRight (goRight hardex3));;
val hardex4 : location =
LOC (NODE [NODE [LEAF "c"; LEAF "*"; LEAF "d"]; LEAF "+"; LEAF "e"],
HAND ([LEAF "-"; NODE [LEAF "a"; LEAF "/"; LEAF "b"]],
HAND ([], TOP, [LEAF "%"; LEAF "F"]), []))
# let hardex5 = (goDown (goRight hardex4));;
Exception: NOMOVE "right of first".
# let hardex6 = (goRight (goDown hardex4));;
val hardex6 : location =
LOC (LEAF "+",
HAND ([NODE [LEAF "c"; LEAF "*"; LEAF "d"]],
HAND ([LEAF "-"; NODE [LEAF "a"; LEAF "/"; LEAF "b"]],
HAND ([], TOP, [LEAF "%"; LEAF "F"]), []),
[LEAF "e"]))
-----------------------------------------------------------------------
# let tree2 = NODE[NODE [ NODE [ NODE[ NODE[LEAF "THE"]]]]];;
val tree2 : tree = NODE [NODE [NODE [NODE [NODE [LEAF "THE"]]]]]
# let someex1 = LOC (tree2,TOP);;
val someex1 : location =
LOC (NODE [NODE [NODE [NODE [NODE [LEAF "THE"]]]]], TOP)
# let someex2 = goRight someex1;;
Exception: NOMOVE "right of top".
# let someex2 = goDown someex1;;
val someex2 : location =
LOC (NODE [NODE [NODE [NODE [LEAF "THE"]]]], HAND ([], TOP, []))
# let someex3 = goDown someex2;;
val someex3 : location =
LOC (NODE [NODE [NODE [LEAF "THE"]]], HAND ([], HAND ([], TOP, []), []))
# let someex4 = (goDown (goDown (goDown someex3)));;
val someex4 : location =
LOC (LEAF "THE",
HAND ([], HAND ([], HAND ([], HAND ([], HAND ([], TOP, []), []), []), []),
[])) |
|