AVK>Привет всем, AVK>Допустим, я хочу определить арфиметические операции для функциональных типов вроде () => Int, () => Double и т.п. AVK>Есть ли в Скале возможность избежать тупого определения подобной функции для всех возможных комбинаций параметров? AVK>Это могут быть встроенные типы (Int, Long, Double), определяемые пользователем (вроде Currency, Quantity etc), а также Option от вышеперечисленных типов.
К сожалению, в отличие от Haskell — в скале нет возможности автоматически генерировать правильные функции в зависимости от определенных подтипов. Поэтому писать вручную имплиситные объекты для разных типов таки придется. Можно еще посмотреть в сторону макросов, с их помощью вполне можно нагенерить код, который сделает все нужное. Но вот отлаживать его будет печально.