HACKER Q&A
📣 jimws

Is there any programming language with a Physics-like dimensional types?


I am curious if there is a programming language with a type system that would cater to types in Physics?

For example, I could say:

  deftype distancd from double;
  deftype time from double;
  deftype speed from distance/time;
  deftype acceleration from speed/time;

  distance d = 10.5;
  time t = 1.2;
  speed s = d/t; // okay
  acceleration a = d/t/t; // okay
  acceleration b = d/t; // error
Is there any programming language type system that supports this idea?


  👤 govert Accepted Answer ✓
I think this is normally done in terms of 'units of measure'. Here's how F# implements this: https://docs.microsoft.com/en-us/dotnet/fsharp/language-refe... https://fsharpforfunandprofit.com/posts/units-of-measure/

👤 GrumpyYoungMan
Mathematica seems to have support for units: https://reference.wolfram.com/language/tutorial/SymbolicCalc...

👤 petra