diff -r b16dfc467b67 -r 5e2e576fac7c scala/ex.scala --- a/scala/ex.scala Sat Mar 02 10:42:39 2013 +0000 +++ b/scala/ex.scala Sun Mar 03 00:18:13 2013 +0000 @@ -17,6 +17,8 @@ println("TMfindnth: " + (TMFindnth(3).run(Tape(1,2,3,4,5)))) println("TMMopup: " + (TMMopup(3).run(Tape(1,2,3,4,5)))) +println("TMCopyMop: " + ((TMCopy :+ TMMopup(0)))) +println("TMCopyMop: " + ((TMCopy :+ TMMopup(1)).run(Tape(3)))) // Abacus machine examples def Copy(in: Int, out: Int, jump: Int) = @@ -104,32 +106,18 @@ //println("Prime(4) " + test_comp2(Prime, 4)) println("Strt(1)(2) " + test_comp2(Strt(1), 2)) -def test_comp1a(f: Rec, ns: Int*) = { - val (abc_f, arity, _) = compile_rec(f) - val tm1 = toTM(abc_f.p) - val res = tm1.run(Tape(ns.toList)) - ("Result: " + res + " length: " + tm1.p.length + " tape: " + arity) -} -println("") -println("S(3) " + test_comp1a(S, 3)) -println("Const(10) " + test_comp1a(Const(10), 0)) -println("Add(6, 3) " + test_comp1a(Add, 6, 3)) - -/* def test_comp1(f: Rec, ns: Int*) = { val (abc_f, arity, _) = compile_rec(f) val tm = toTM(abc_f.p) :+ TMMopup(arity) val res = tm.run(Tape(ns.toList)) - ("Result: " + res + " length: " + tm.p.length + " tape: " + arity) + ("length: " + tm.p.length + " tape: " + arity + "\nResult: " + res) } println("") println("S(3) " + test_comp1(S, 3)) println("Const(10) " + test_comp1(Const(10), 0)) println("Add(6, 3) " + test_comp1(Add, 6, 3)) +println("Mult(4, 5) " + test_comp1(recs.Mult, 4, 5)) +println("Fact(4) " + test_comp1(Fact, 4)) -*/ -//println(toTM(compile_rec(Add)._1.p).run(Tape(3, 4, 0))) -//println(compile_rec(Add)._1.run(Map(0 -> 3, 1 -> 8, 2 -> 0))) -//compile_rec(Add)._1.run(Map(0 -> 3, 1 -> 4, 2 -> 0))