斯卡拉:建议进行实际操作

Itt*_*ayD 6 functional-programming scala

我想提供一个Scala演示文稿,我希望通过获取一个应用程序并将其从使用java成语的东西演变为使用scala(特征,模式匹配,隐式转换,函数编程)的东西.

我特别感兴趣的是能够展示设计变化的东西,而不是语法糖.最终scala代码显然更容易维护和扩展的东西.

那么任何想法?(我不是要求代码示例,而是要求使用什么示例和可以演示哪些设计原则的粗略想法).

Dar*_*rio 4

一个很好的例子是为动态迷你语言开发一个小解释器。

基本的 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 页面上的解释器示例。