我注意到许多语言如Ruby和CofeeScript(以及转换编译器)都支持所有表达式.
现在它使语言有点简单易懂,而且表面上看起来似乎很简洁,但我正在寻找一些有关这两种方法的正面和负面的学术出版物.
如果这些出版物有明确的例子可以比较一切都是表达的好处,那么这将是有益的.
CoffeeScript与Javascript中的示例会很好,但不是必需的.
这个概念绝对很酷,但我仍然不确定整个想法究竟是多么具有革命性(显然革命性的东西有点意见).
谢谢!
最佳答案
这本身并没有什么革命性的. expression-oriented方法是functional programming技术.
面向表达式的代码比面向语句的代码更简单,更简洁,因为更少的assignments和没有显式的返回语句.表达式和命令之间缺乏区别使概念统一(见Referential transparency)和bottom-up结构成为可能.
一些现代语言采用了函数式编程概念(例如C#,Python,Ruby).
Some scholarly insight on the benefits of functional practices:
- 07006
Interesting articles:
- 07007
- 07008
至于关于性能问题的评论,与范式选择相关的可能开销可能微不足道.即使在C语言中,大多数语句evaluate as an expression – 然而,编译语言(C)和解释语言(CoffeeScript)之间的比较相当无用.
从理论上讲,imperative language以更多面向机器的方式表示控制流程,这可以允许比功能语言更容易的手动优化.
语言表现及其重要性在很大程度上取决于用例.关于JavaScript及其上的任何代码转换,这种性能讨论完全无关紧要.生产力的提高超过任何轻微的性能影响.