Are there any programming languages that treat, say, numbers like adjectives, as human languages do, and have units typing?<p>Instead of an integer being a standalone noun, "5", it would be "5 apples", or "5 meters/second". Multiplying a variable of 3 meters/second by a variable of 2 minutes could give a result of 180 meters, and adding nautical miles to dollars would give an exception. I've played around with this idea a little bit in objects, but it seems like a language with such features built in or an object library should already exist somewhere.
You can do this sort of thing with Ada's type system. There is also a blog post about units of measure in F#
<a href="https://blogs.msdn.microsoft.com/andrewkennedy/2008/08/29/units-of-measure-in-f-part-one-introducing-units/" rel="nofollow">https://blogs.msdn.microsoft.com/andrewkennedy/2008/08/29/un...</a><p>It's a pretty niche topic. You can do this in a language like c++ or even python but unit aware calculations aren't a requirement for a lot of systems.
Have you seen <a href="https://frinklang.org/" rel="nofollow">https://frinklang.org/</a> ? I think that's supposed to be its Big Idea.