Loops/While: Difference between revisions

(adding gap)
Line 1,231:
 
=={{header|Scala}}==
[[Category:Scala Implementations]]
{{libheader|Scala}}
===Imperative===
<lang scala>var i = 1024
while (i > 0) {
Line 1,236 ⟶ 1,239:
i /= 2
}</lang>
===Recursive===
<lang scala>def loop(iter: Int) {
println(iter)
val half = iter / 2
if (half > 0) loop(half)
}
loop(1024)</lang>
===Iterator===
<lang scala> def loop = new Iterator[Int] {
var i = 1024
def hasNext = i > 0
def next(): Int = { val tmp = i; i = i / 2; tmp }
}
loop.foreach(println(_))</lang>
===Stream===
Finite stream (1024..0) filtered by takeWhile (1024..1).
<lang scala> def loop(i: Int): Stream[Int] = i #:: (if (i > 0) loop(i / 2) else Stream.empty)
loop(1024).takeWhile(_ > 0).foreach(println(_))</lang>
 
=={{header|Scheme}}==
Anonymous user