Itt*_*ayD 6 functional-programming scala
我想提供一个Scala演示文稿,我希望通过获取一个应用程序并将其从使用java成语的东西演变为使用scala(特征,模式匹配,隐式转换,函数编程)的东西.
我特别感兴趣的是能够展示设计变化的东西,而不是语法糖.最终scala代码显然更容易维护和扩展的东西.
那么任何想法?(我不是要求代码示例,而是要求使用什么示例和可以演示哪些设计原则的粗略想法).
一个很好的例子是为动态迷你语言开发一个小解释器。
基本的 java 实现需要经典的解释器设计模式,而函数式 scala 方法可以使用许多精彩的函数式习惯用法,例如
或者甚至可能是monad,以便生成非常干净且易于理解的代码。
比较一下
class Number implements Expression {
private int number;
public Number(int number) { this.number = number; }
public int interpret(HashMap<String,Integer> variables) { return number; }
}
Run Code Online (Sandbox Code Playgroud)
和
case NumberLiteral(i) => Integer(i)
Run Code Online (Sandbox Code Playgroud)
请参阅scala 页面上的解释器示例。
归档时间: |
|
查看次数: |
239 次 |
最近记录: |