小编Nem*_*emo的帖子

这个Haskell函数的Java等价物是什么?

Philip Wadler的论文"用于函数式编程的Monads"有一个函数eval的例子,它执行用Haskell编写的除法.

在Graham Hutton的"Haskell编程"中对它进行了改编:

data Expr = Val Int | Div Expr Expr

eval :: Expr -> Int
eval (Val n) = n
eval (Div x y) = eval x `div` eval y
Run Code Online (Sandbox Code Playgroud)

我的Java相当于:

abstract class IntegerExpression {
    abstract Integer evaluate();
}

class Value extends IntegerExpression {

    Integer value;

    public Value(Integer x) {
       value = x;
    }

    public  Integer evaluate() {
        return value;
    }
}

class DivisionExpression extends IntegerExpression {

    IntegerExpression x, y;

    public DivisionExpression(IntegerExpression a, IntegerExpression b) {
        x …
Run Code Online (Sandbox Code Playgroud)

java monads haskell functional-programming java-8

9
推荐指数
3
解决办法
554
查看次数

标签 统计

functional-programming ×1

haskell ×1

java ×1

java-8 ×1

monads ×1