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}}== |