型で単位を表す
F#のUnits of Measureが元祖にあって、それを別の言語でも輸入してる感じだろうか?mrsekut.icon
F#
Units of Measureが言語レベルで用意されている
Haskell
Data.UnitsOfMeasure
dimentional
https://github.com/bjornbm/dimensional/
units
https://github.com/goldfirere/units
PostfixOperatorsとか?
Scala
Squants
Spire
code:scala
import spire.math._
import spire.implicits._
val length1 = 100.0.withUnitMeter
val length2 = 10.0.withUnitCentimeter
val sum = length1 + length2.inMeter
Rust
uom
code:rs
extern crate uom;
use uom::si::f64::*;
use uom::si::length::{meter, centimeter};
fn main() {
let length1 = Length::new::<meter>(100.0);
let length2 = Length::new::<centimeter>(10.0);
let sum = length1 + length2;
}
C++
Boost.Units
code:cpp
#include <boost/units/systems/si/length.hpp>
#include <boost/units/systems/si/prefixes.hpp>
#include <boost/units/io.hpp>
int main() {
using namespace boost::units;
quantity<si::length> length1(100.0 * si::meters);
quantity<si::length> length2(10.0 * si::centimeters);
auto sum = length1 + length2;
}
TypeScript
Safe Units
@susisu/ts-dimentional