Я пытаюсь понять этот код и что он делает в основном, чтобы переписать его на C (используя объединение), или, например, на Java, или SML, или даже на Pascal/Kotlin.
Кто-нибудь может объяснить мне, что означает этот фрагмент кода? ?
Код: Выделить всё
int eval(Expr n) {
return switch(n) {
case IntExpr(int i) -> i;
case NegExpr(Expr n) -> -eval(n);
case AddExpr(Expr left, Expr right) -> eval(left) + eval(right);
case MulExpr(Expr left, Expr right) -> eval(left) * eval(right);
default -> throw new IllegalArgumentException(n);
};
}
Мы их получим с помощью n?
Подробнее здесь: https://stackoverflow.com/questions/701 ... terns-arra