Кстати, на Ruby можно сделать нечто в виде

a = 5.domain.meters
b = 3.domain.foots
c = a * b

puts c.to_meters

Достаточно определить метод Fixnum.real, который приводит к типу
ScalarReal, в котором определить конверторы, ошибки преобразований и прочую
мелочовку. Работы на пару часов с тестами.

25 апреля 2016 г., 21:47 пользователь Alexander Q <[email protected]>
написал:

>
>
> On Mon, Apr 25, 2016 at 9:37 PM Daniel Podolsky <[email protected]>
> wrote:
>
>> в рамках этого обсуждения язык типизированным делает способность
>> компилятора сказать "дружок, я тебя не понимаю. это целое, или строка?
>> будь яснеее!"
>
>
> Ну всё-таки это детский зад пятидесятилетней давности. Довольно давно от
> системы типов ожидается ещё умение сказать "дружок, я не могу помножить
> футы на метры, определись" — и это первое что приходит в голову. Помогают
> сообщения компилятора "дружок, ты пытаешься сложить два числа, какой к
> чёрту IO??!?" — это уже несколько более продвинутый уровень, но и это
> прошлая декада.
>
> Система типов бывает разная. У go она, насколько я понимаю, от perl ушла
> недалеко. Из 2016 не различить.
>
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>
>
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить