Roman numerals/Decode: Difference between revisions

Content added Content deleted
imported>Arakov
(→‎Insitux: implementation)
Line 4,061: Line 4,061:
MDCLXVI = 1666
MDCLXVI = 1666
MMVIII = 2008</pre>
MMVIII = 2008</pre>

=={{header|Insitux}}==

{{Trans|Clojure}}

<syntaxhighlight lang="insitux">
(var numerals {"M" 1000 "D" 500 "C" 100 "L" 50 "X" 10 "V" 5 "I" 1})

; Approach A
(function ro->ar r
(-> (reverse (upper-case r))
(map numerals)
(split-with val)
(map (.. +0))
(reduce #(((< % %1) + -) % %1))))

; Approach B
(function ro->ar r
(-> (upper-case r)
(map numerals)
@(reduce (fn [sum lastv] curr [(+ sum curr ((< lastv curr) (* -2 lastv) 0)) curr]) [0 0])
0))

(map ro->ar ["MDCLXVI" "MMMCMXCIX" "XLVIII" "MMVIII"])
</syntaxhighlight>

{{out}}

<pre>
[1666 3999 48 2008]
</pre>


=={{header|J}}==
=={{header|J}}==