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> |
<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 |
||
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 { |