Continued fraction: Difference between revisions
no edit summary
m (→{{header|RPL}}: typos) |
No edit summary |
||
Line 1,119:
2.7182818284590452354
3.1415926228048469486</pre>
=={{header|Elixir}}==
<syntaxhighlight lang="elixir">
defmodule CFrac do
def compute([a | _], []), do: a
def compute([a | as], [b | bs]), do: a + b/compute(as, bs)
def sqrt2 do
a = [1 | Stream.cycle([2]) |> Enum.take(1000)]
b = Stream.cycle([1]) |> Enum.take(1000)
IO.puts compute(a, b)
end
def exp1 do
a = [2 | Stream.iterate(1, &(&1 + 1)) |> Enum.take(1000)]
b = [1 | Stream.iterate(1, &(&1 + 1)) |> Enum.take(999)]
IO.puts compute(a, b)
end
def pi do
a = [3 | Stream.cycle([6]) |> Enum.take(1000)]
b = 1..1000 |> Enum.map(fn k -> (2*k - 1)**2 end)
IO.puts compute(a, b)
end
end
</syntaxhighlight>
{{out}}
<pre>
>elixir -e CFrac.sqrt2()
1.4142135623730951
>elixir -e CFrac.exp1()
2.7182818284590455
>elixir -e CFrac.pi()
3.141592653340542
</pre>
=={{header|Erlang}}==
|