I've implemented a factorial function in a more "Ruby" way. I would like to get feedback on the algorithm.

def factorial_of n
  (1..n).inject :*

factorial_of 5
=> 120
  • 1
    \$\begingroup\$ factorial_of 5 gives 15, not 120... Maybe you had another function and didn't paste in the correct one? \$\endgroup\$ – Dair Dec 11 '18 at 0:35
  • \$\begingroup\$ So sorry! Just edited. I pasted it wrong. \$\endgroup\$ – Vinicius Brasil Dec 11 '18 at 0:36

The "of" in the name factorial_of is redundant and unconventional.

factorial_of 0 returns nil instead of the correct answer, which is 1.

def factorial(n)
  (1..n).inject(1, :*)
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.