Isn't the "newtype" pattern something that addresses this issue elegantly?
Is there something that I'm missing here?
Is there something that I'm missing here?
radius = 15 [mm]
area = pi*radius^3
force = 100 [N]
def will_i_blow_up(pressure [Pa]):
if(pressure > 1 [Gpa]):
return "Oh no it blew up"
will_i_blow_up( force/area )
should raise an error like "UnitsException, [N/mm^3] is not compatible with [Pa]". I could then look over my code and realize I should have written: area = pi*radius^2Math is a kind of a core use case for, really, almost any programming language, and is central to much of what computers are used for (as is hinted at in their name.)
Though dealing with this aspect of units is less “math-specific” than central to the relation between math and real-world meaning, which is arguably even more important than abstract math in computing applications.