Question du test Kotlin

Écrire un programme Kotlin qui évalue une expression arithmétique.

Difficile
sealed class Expr
data class Const(val number: Double) : Expr()
data class Sum(val e1: Expr, val e2: Expr) : Expr()
object NotANumber : Expr()

fun eval(expr: Expr): Double = when(expr) {
    is Const -> expr.number
    is Sum -> eval(expr.e1) + eval(expr.e2)
    NotANumber -> Double.NaN
}

fun main(args: Array<String>) {
    println(eval(Sum(Sum(Const(42.0), Const(1.0)), Const(1.0))))
}

Le code précédent :

Auteur: Équipe W3DStatut : PubliéeQuestion passée 549 fois
Modifier
3
Évaluations de la communautéPersonne n'a encore évalué cette question, soyez le premier !