Old Russian measure of length: Difference between revisions
Content added Content deleted
(→{{header|D}}: added D) |
(Small changes in D entry) |
||
Line 23: | Line 23: | ||
<lang d>import std.stdio, std.string, std.algorithm, std.conv; |
<lang d>import std.stdio, std.string, std.algorithm, std.conv; |
||
void main(string[] |
void main(in string[] args) { |
||
auto factor = ["arshin": 0.7112, |
|||
⚫ | |||
⚫ | |||
double[string] factor = [ |
|||
" |
"diuym": 0.0254, |
||
" |
"fut": 0.3048, |
||
"kilometer": 1_000.0, |
|||
" |
"liniya": 0.00254, |
||
" |
"meter": 1.0, |
||
"milia": 7_467.6, |
|||
" |
"piad": 0.1778, |
||
"sazhen" |
"sazhen": 2.1336, |
||
" |
"tochka": 0.000254, |
||
" |
"vershok": 0.04445, |
||
" |
"versta": 1_066.8]; |
||
⚫ | |||
⚫ | |||
"kilometer" : 1000.0, |
|||
⚫ | |||
]; |
|||
if (auto p = a[2] in factor) { |
|||
immutable magnitude = to!double(args[1]); |
|||
immutable meters = magnitude * factor[args[2]]; |
|||
writefln("%s %s to:\n", args[1], args[2]); |
|||
auto keys = factor.keys; |
|||
keys.schwartzSort!(k => factor[k], "a < b"); |
|||
foreach (key; keys) |
|||
writefln("%10s: %s", key, meters / factor[key]); |
|||
return; |
|||
} |
|||
} |
|||
⚫ | |||
}</lang> |
}</lang> |
||
{{out}} |
{{out}} |