Mutual recursion: Difference between revisions
Content added Content deleted
m (→{{header|Rust}}: fixed for stable Rust) |
(→{{header|Elixir}}: add output) |
||
Line 672: | Line 672: | ||
=={{header|Elixir}}== |
=={{header|Elixir}}== |
||
<lang elixir> |
<lang elixir>defmodule MutualRecursion do |
||
defmodule MutualRecursion do |
|||
def f(0), do: 1 |
def f(0), do: 1 |
||
def f(n), do: n - m(f(n - 1)) |
def f(n), do: n - m(f(n - 1)) |
||
Line 679: | Line 678: | ||
def m(n), do: n - f(m(n - 1)) |
def m(n), do: n - f(m(n - 1)) |
||
end |
end |
||
⚫ | |||
IO.inspect Enum.map(0..19, fn n -> MutualRecursion.f(n) end) |
|||
IO.inspect Enum.map(0..19, fn n -> MutualRecursion.m(n) end)</lang> |
|||
{{out}} |
|||
<pre> |
|||
[1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 9, 10, 11, 11, 12] |
|||
[0, 0, 1, 2, 2, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9, 9, 10, 11, 11, 12] |
|||
⚫ | |||
=={{header|Erlang}}== |
=={{header|Erlang}}== |