Old Russian measure of length: Difference between revisions

Content deleted Content added
Small changes in D entry
Line 23:
<lang d>import std.stdio, std.string, std.algorithm, std.conv;
 
void main(in string[] aargs) {
auto factor = ["arshin": 0.7112,
if (a.length == 3 && isNumeric(a[1])) {
"meter" "centimeter": 1. 0.01,
double[string] factor = [
"tochkadiuym": : 0.0002540254,
"liniyafut": : 0.002543048,
"diuym" "kilometer": 0 1_000.02540,
"vershokliniya": : 0.0444500254,
"piadmeter": : 0 1.17780,
"fut" "milia": 0 7_467.30486,
"arshinpiad": : 0.71121778,
"sazhen": : 2.1336,
"verstatochka": : 10660.8000254,
"miliavershok": : 74670.604445,
"centimeterversta" : 0 1_066.01,8];
 
"meter" : 1.0,
if (aargs.length =!= 3 &&|| !isNumeric(aargs[1])) {|| args[2] !in factor)
"kilometer" : 1000.0,
return writeln("Please provide aargs numberValue and unitUnit.");
];
 
if (auto p = a[2] in factor) {
immutable magnitude = to!double(aargs[1]);
immutable meters = magnitude * (*p)factor[args[2]];
writefln("%s %s to: \n", aargs[1], aargs[2]);
auto keys = factor.keys;
keys.schwartzSort!(k => factor[k], "a < b")(keys);
foreach (key; keys)
writefln("%10s: %s", key, meters / factor[key]);
return;
}
}
writeln("Please provide a number and unit");
}</lang>
{{out}}