diff options
author | Hubert Plociniczak <hubert.plociniczak@epfl.ch> | 2011-11-02 14:34:35 +0000 |
---|---|---|
committer | Hubert Plociniczak <hubert.plociniczak@epfl.ch> | 2011-11-02 14:34:35 +0000 |
commit | b6778be91900b8161e705dc2598ef7af86842b0b (patch) | |
tree | d15e8ec18a37eec212f50f1ace27714d7e7d4d34 /test/pending/shootout/methcall.scala | |
parent | ac6c76f26d884a94d0c9ff54f055d3f9ab750bac (diff) | |
download | scala-b6778be91900b8161e705dc2598ef7af86842b0b.tar.gz scala-b6778be91900b8161e705dc2598ef7af86842b0b.tar.bz2 scala-b6778be91900b8161e705dc2598ef7af86842b0b.zip |
Begone t1737...
Diffstat (limited to 'test/pending/shootout/methcall.scala')
-rw-r--r-- | test/pending/shootout/methcall.scala | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/test/pending/shootout/methcall.scala b/test/pending/shootout/methcall.scala new file mode 100644 index 0000000000..9f7234c72d --- /dev/null +++ b/test/pending/shootout/methcall.scala @@ -0,0 +1,58 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy (Scala novice) +*/ + +object methcall { + def main(args: Array[String]) = { + var n = toPositiveInt(args); + var v: Boolean = false + + val toggle = new Toggle(true); + for (i <- Iterator.range(1,n)) v = toggle.activate.value; + + Console println( toggle.activate.value ); + + val ntoggle = new NToggle(true,3); + for (i <- Iterator.range(1,n)) v = ntoggle.activate.value; + + Console println( ntoggle.activate.value ); + } + + + private def toPositiveInt(s: Array[String]) = { + val i = + try { Integer.parseInt(s(0)); } + catch { case _ => 1 } + if (i>0) i; else 1; + } +} + + +private class Toggle(b: Boolean) { + var state = b; + + def value = state; + + def activate = { + state = !state; + this + } +} + + +private class NToggle(b: Boolean, trigger: Int) +extends Toggle(b) { + + val toggleTrigger = trigger; + var count = 0; + + override def activate = { + count = count + 1; + if (count >= toggleTrigger) { + state = !state; + count = 0; + } + this + } +} |