Skip to main content
improved algorithm
Source Link
m_goldberg
  • 108.6k
  • 16
  • 107
  • 263

It can be done elegantly with tail recursion.

series[a_, b_, n_] := List @@ Flatten[helper[a, b, n, term[]]]{}]] helper[_, _, 0, s_] := s helper[a_, b_, n_, s_] := helper[b, a + b, n - 1, term[s{s, a]]a}] series[0, 2, 10] 

{0, 2, 2, 4, 6, 10, 16, 26, 42, 68}

When the 1st two arguments are set to 1, series gives the Fibonacci series.

series[1, 1, 10] == Table[Fibonacci[i], {i, 10}] 

True

It can be done elegantly with tail recursion.

series[a_, b_, n_] := List @@ Flatten[helper[a, b, n, term[]]] helper[_, _, 0, s_] := s helper[a_, b_, n_, s_] := helper[b, a + b, n - 1, term[s, a]] series[0, 2, 10] 

{0, 2, 2, 4, 6, 10, 16, 26, 42, 68}

When the 1st two arguments are set to 1, series gives the Fibonacci series.

series[1, 1, 10] == Table[Fibonacci[i], {i, 10}] 

True

It can be done elegantly with tail recursion.

series[a_, b_, n_] := Flatten[helper[a, b, n, {}]] helper[_, _, 0, s_] := s helper[a_, b_, n_, s_] := helper[b, a + b, n - 1, {s, a}] series[0, 2, 10] 

{0, 2, 2, 4, 6, 10, 16, 26, 42, 68}

When the 1st two arguments are set to 1, series gives the Fibonacci series.

series[1, 1, 10] == Table[Fibonacci[i], {i, 10}] 

True

Source Link
m_goldberg
  • 108.6k
  • 16
  • 107
  • 263

It can be done elegantly with tail recursion.

series[a_, b_, n_] := List @@ Flatten[helper[a, b, n, term[]]] helper[_, _, 0, s_] := s helper[a_, b_, n_, s_] := helper[b, a + b, n - 1, term[s, a]] series[0, 2, 10] 

{0, 2, 2, 4, 6, 10, 16, 26, 42, 68}

When the 1st two arguments are set to 1, series gives the Fibonacci series.

series[1, 1, 10] == Table[Fibonacci[i], {i, 10}] 

True