geniepro писал(а):
В F#, где поддержка единиц измерений сделана на уровне языка, программисту даётся лишь возможность вводить свои единицы измерений, а компилятор затем проверяет согласованность их использования.
В Хаскелле единицы измерений SI, CGS, некоторые другие, сделаны в виде отдельной библиотеки, которую можно использовать, а можно не использовать.
Так в чём проблема-то?
Допустим, Вы пишете программу, которая моделирует работу трансформатора, и решили ввести единицы измерения веберы [Вб] и амперы [А] для того чтобы не напороть косяков в вычислениях. Так вот, основная кривая намагничивания у Вас аппроксимируется полиномом седьмой степени. Но как только Вы попробуете воспользоваться этим полиномом для вычисления тока намагничивания по известному основному потокосцеплению, компилятор начнёт некстати "умничать". Причина в том, что аппроксимирующий полином - это эмпирическое соотношение, которое не несёт в себе никакого физического смысла. И такие ситуации возникают в нетривиальных задачах сплошь и рядом.
Впрочем, я рад, что есть языки (и библиотеки), которые поддерживают единицы измерения. Кому это нужно - пусть их используют. Но лично мне это без надобности.