Pi: Difference between revisions

Content added Content deleted
(Added Visual Basic.NET translation from C#)
(→‎{{header|Ruby}}: Adapted to use Enumerator; simplified handling of dot.)
Line 3,794: Line 3,794:
=={{header|Ruby}}==
=={{header|Ruby}}==
{{trans|Icon}}
{{trans|Icon}}
<lang ruby>def pi
<lang ruby>pi_digits = Enumerator.new do |y|
q, r, t, k, n, l = 1, 0, 1, 1, 3, 3
q, r, t, k, n, l = 1, 0, 1, 1, 3, 3
dot = nil
loop do
loop do
if 4*q+r-t < n*t
if 4*q+r-t < n*t
yield n
y << n
if dot.nil?
yield '.'
dot = '.'
end
nr = 10*(r-n*t)
nr = 10*(r-n*t)
n = ((10*(3*q+r)) / t) - 10*n
n = ((10*(3*q+r)) / t) - 10*n
Line 3,821: Line 3,816:
end
end


print pi_digits.next, "."
pi {|digit| print digit; $stdout.flush}</lang>
loop { print pi_digits.next }</lang>

=={{header|Scala}}==
=={{header|Scala}}==
<lang scala>object Pi {
<lang scala>object Pi {