Здравствуйте, z00n, Вы писали:
Z>Здравствуйте, Lazy Cjow Rhrr, Вы писали:
LCR>>Ещё в качестве альтернативы предлагаю вот этот микробенчмарк, названный Jon Harrop Challenge Problem .
Z>Отличная мысль. Аналогично, Одерски как-то хвастался перед явистами паттерн-матчингом на таком примере:
Z>Z>// SCALA!
Z>class Term
Z>case class Num(n: int) extends Term
Z>case class Var(name: String) extends Term
Z>case class Mul(l: Term, r: Term) extends Term
Z>case class Add(l: Term, r: Term) extends Term
Z>// Now let's say we want to implement some simplification rules on such terms.
Z>// Two useful simplifications apply the equalities:
Z>// 0 * x = 0
Z>// 1 * x = x
Z>def simplify(term: Term) = term match {
Z> case Mul(Num(0), x) => Num(0)
Z> case Mul(Num(1), x) => x
Z> case _ => term
Z>}
Z>
Z>Ему ответили, что мултиплай — диспатч на яве — это просто 
В чем принципиальное отличие от такого кода на Яве?
public Term simplify(Term term) {
_Term x = new _Term();
if (term.equals(new Mul(new Num(0), x))) return new Num(0);
if (term.equals(new Mul(new Num(1), x))) return x.value;
return term;
}