?

Log in

No account? Create an account

Зачем компилятор должен поддерживать гигиену? - Excelsior

Aug. 7th, 2013

08:11 am - Зачем компилятор должен поддерживать гигиену?

Previous Entry Share Next Entry

Затем, чтобы синтаксический сахар в вот таких ситуациях

case class C(x: D)

↓

object C {
  def apply(x: D) = new C(x)
}
Не приводил к казусам вроде:
case class C(x: D)
object C { type D = Double }

↓

object C {
  type D = Double
  def apply(x: D) = new C(x)
}
Как говорится, science. It works. Низкотехнологичные решения в таких ситуациях вынуждены прибегать к очень некрасивым хакам для реализации того, что в гигиеничных системах достигается забесплатно.

Tags: ,