Loops/While: Difference between revisions

Line 1,825:
Module Online { A=1024&: While A>0 {Print A: A/=2}} : OnLine
</lang>
 
=={{header|m4}}==
This ‘loop’ is really a tail recursion, which m4 implementations generally do ''not'' optimize.
<lang m4>divert(-1)
 
define(`loop',
`ifelse(eval(0 < ($1)),1,`$1`
'loop(eval(($1) / 2))')')
 
divert`'dnl
loop(1024)dnl</lang>
{{out}}
$ m4 loops_while.m4
<pre>1024
512
256
128
64
32
16
8
4
2
1</pre>
 
=={{header|Make}}==
1,448

edits