Вашему вниманию будет представлен паттерн для создания «мини-DSL» на Scala для оперирования единицами измерения. Одну из реализаций этого паттерна можно увидеть в стандартной библиотеке Scala, а именно — в scala.concurrent.duration.\_. Пример из документации по Akka[1]:
implicit val timeout = Timeout(5 seconds)
В данном случае Int неявно конвертируется в объект с методом «seconds», который затем возвращает требуемый функции тип. Далее будет рассмотрено пошаговое создание «мини-DSL» для оперирования частотой. В конечном итоге планируется получить возможность задавать частоту естественным образом, например, 5 kHz. [Читать дальше →][1]
[1]:
http://habrahabr.ru/post/250787/#habracut