我喜欢函数式编程,我也喜欢 Ruby。如果我可以用函数式而不是命令式来编写算法,我就会这样做。我倾向于尽可能不更新或重用变量,避免使用“砰!” 方法并使用“map”、“reduce”和类似的函数来代替“each”或危险循环等。基本上我尽量遵循这篇文章的规则。
问题是通常函数式解决方案比命令式解决方案慢得多。在这篇文章中,有一些清晰而可怕的例子,在某些情况下会慢 15-20 倍。在阅读并做了一些基准测试之后,我害怕继续使用函数式风格,至少在 Ruby 中是这样。
另一方面,我觉得用函数式风格编写代码更舒服,因为它聪明、干净、错误更少,而且我认为更“正确”,特别是现在我们可以使用并发和并行来获得更好的性能。
所以我很困惑在 Ruby 中使用哪种风格。任何明智的建议将不胜感激。