Roman numerals/Decode: Difference between revisions

Content added Content deleted
m (→‎{{header|Phix}}: use pygments, added cheat version)
(Add a declarative way of achieving the transformation)
Line 4,445: Line 4,445:
2016
2016
2017</pre>
2017</pre>

====Declarative====
<syntaxhighlight lang="javascript">
(() => {
function toNumeric(value) {
return value
.replace(/IV/, 'I'.repeat(4))
.replace(/V/g, 'I'.repeat(5))
.replace(/IX/, 'I'.repeat(9))
.replace(/XC/, 'I'.repeat(90))
.replace(/XL/, 'I'.repeat(40))
.replace(/X/g, 'I'.repeat(10))
.replace(/L/, 'I'.repeat(50))
.replace(/CD/, 'I'.repeat(400))
.replace(/CM/, 'I'.repeat(900))
.replace(/C/g, 'I'.repeat(100))
.replace(/D/g, 'I'.repeat(500))
.replace(/M/g, 'I'.repeat(1000))
.length;
}

const numerics = ["MMXVI", "MCMXC", "MMVIII", "MM", "MDCLXVI"]
.map(toNumeric);

console.log(numerics);
})();
</syntaxhighlight>

{{Out}}
<pre>
[2016, 1990, 2008, 2000, 1666]
</pre>


=={{header|jq}}==
=={{header|jq}}==