Scala - dynamický jazyk

Scala je velice flexibilní jazyk (to už víme) a dá se v něm udělat téměř nemožné. A hranice nemožného se pořád posouvají.
Takže pokud vám z nějakého důvodu (neodvážím se domýšlet proč) v jazyce chybí vyhodnocování pravdivosti známé z dynamických jazyků jako třeba PHP, Python nebo Perl, kdy se jako true
vyhodnotí všechna nenulová čísla, neprázdné řetězce a kolekce, stačí čtyři řádky kódu a Scala se bude chovat přesně takhle.
Je to děsivý hack a nikomu ho nedoporučuji použít, protože jím velice oslabíte statickou typovou kontrolu a věci se mohou začít chovat velice divně. Implicitní konverze se totiž nebudou používat jenom v podmínkách nebo ve while cyklu, ale všude, kde nebudou sedět typy, což může vést ke katastrofě biblických rozměrů.
Takže ještě jednou: bůh s tím, kdo tohle použije, ale jako demonstrace možností Scaly je to docela pěkné, ne?
implicit def longToBool(l: Long) = l != 0.toLong implicit def doubleToBool(d: Double) = d != 0.0 implicit def traversableToBool[T <% scala.collection.Traversable[_]](t: T) = t != null && t.nonEmpty implicit def optionToBool(o: Option[_]) = (o != null) && (o match { case _: Some[_] => true; case None => false }) // test if (1) println("true") else println("false") // true if (0) println("true") else println("false") // false if (1.0) println("true") else println("false") // true if (0.0) println("true") else println("false") // false if (1.toLong) println("true") else println("false") // true if (0.toLong) println("true") else println("false") // false if ("asdf") println("true") else println("false") // true if ("") println("true") else println("false") // false if (List(1, 2, 3)) println("true") else println("false") // true if (List()) println("true") else println("false") // false if (Nil) println("true") else println("false") // false if (Array("asdf")) println("true") else println("false") // true if (Array[String]) println("true") else println("false") // false if (Some(1)) println("true") else println("false") // true if (None) println("true") else println("false") // false if (null) println("true") else println("false") // false