<@U5190EF9S> why would you need that? Something li...
# random
m
@dg3feiko why would you need that? Something like this works fine
Copy code
sealed class Expression
data class Const(val value: Int) : Expression()
data class Add(val left: Expression, val right: Expression) : Expression()
data class Neg(val expr: Expression) : Expression()

fun eval(expr: Expression): Int = when (expr) {
    is Const -> expr.value
    is Add -> eval(expr.left) + eval(expr.right)
    is Neg -> -eval(expr.expr)
}

fun main(args: Array<String>) {
    println(eval(Add(Const(1), Neg(Const(2)))))
}
K 3
d
you are right, I was still thinking in dynamic langauges