From 868dff8c90d654a925bc6da045e6a9dde6ec00f1 Mon Sep 17 00:00:00 2001 From: amitmaor Date: Mon, 15 Feb 2016 15:51:36 -0800 Subject: [PATCH] ran out of class time so we are done --- .gitignore | 1 + src/main/scala/internal/ForLoop.scala | 9 +++++++++ src/main/scala/internal/LoopUntil.scala | 8 +++++++- src/main/scala/internal/RepeatUntil.scala | 12 +++++++++++- src/main/scala/internal/WhileContinue.scala | 8 ++++++++ 5 files changed, 36 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 8bbc081..c3fafcb 100755 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ project/target .classpath .project target +/bin/ diff --git a/src/main/scala/internal/ForLoop.scala b/src/main/scala/internal/ForLoop.scala index f80286b..5b02d00 100644 --- a/src/main/scala/internal/ForLoop.scala +++ b/src/main/scala/internal/ForLoop.scala @@ -13,6 +13,15 @@ object ForLoop extends App { // define the new control-flow structure here + def for_loop(startVal: =>Unit) (cond: =>Boolean) (inc: =>Unit) (body: =>Unit) { + startVal + if (cond) { + body + inc + for_loop(Nil)(cond)(inc)(body) + } + } + var i = 0; for_loop(i = 0)(i < 10)(i += 2) { println(i); diff --git a/src/main/scala/internal/LoopUntil.scala b/src/main/scala/internal/LoopUntil.scala index d12efb4..78a69e9 100755 --- a/src/main/scala/internal/LoopUntil.scala +++ b/src/main/scala/internal/LoopUntil.scala @@ -12,8 +12,14 @@ object LoopUntil extends App { // define the new control-flow structure here - var i = 0 + def loop_until(cond: =>Boolean) (body: =>Unit) :Unit = { + if (!cond) { + body + loop_until(cond)(body) + } + } + var i = 0 loop_until (i > 9) { if ( (i % 2) == 0 ) println(i) diff --git a/src/main/scala/internal/RepeatUntil.scala b/src/main/scala/internal/RepeatUntil.scala index 8e033ff..f11c246 100755 --- a/src/main/scala/internal/RepeatUntil.scala +++ b/src/main/scala/internal/RepeatUntil.scala @@ -12,7 +12,17 @@ package internal object RepeatUntil extends App { // define the new control-flow structure here - + class repeat (op: =>Unit) { + // + } + + def until (cond: =>Boolean){ + if (!cond) { + repeat + } + } + + var i = 0 repeat { if ( (i % 2) == 0 ) diff --git a/src/main/scala/internal/WhileContinue.scala b/src/main/scala/internal/WhileContinue.scala index 8f6ee74..50a5350 100755 --- a/src/main/scala/internal/WhileContinue.scala +++ b/src/main/scala/internal/WhileContinue.scala @@ -13,6 +13,14 @@ object WhileContinue extends App { // define the new control-flow structures here + def while_c (bool: =>Boolean) (body: =>Unit) { + + } + + def continue { + + } + var i = -1 while_c (i < 9) {