Roman numerals/Decode: Difference between revisions

Content added Content deleted
(Add BQN)
m (Emacs Lisp: Fix formatting)
Line 2,241: Line 2,241:


=={{header|Emacs Lisp}}==
=={{header|Emacs Lisp}}==
<lang lisp>
<lang lisp>(defun ro2ar (RN)
"Translate a roman number RN into arabic number.
(defun ro2ar (RN)
"translate a roman number RN into arabic number.
Its argument RN is wether a symbol, wether a list.
Its argument RN is wether a symbol, wether a list.
Returns the arabic number. (ro2ar 'C) gives 100,
Returns the arabic number. (ro2ar 'C) gives 100,
Line 2,257: Line 2,256:
((null (cdr RN)) (ro2ar (car RN))) ;; stop recursion
((null (cdr RN)) (ro2ar (car RN))) ;; stop recursion
((< (ro2ar (car RN)) (ro2ar (car (cdr RN)))) (- (ro2ar (cdr RN)) (ro2ar (car RN)))) ;; "IV" -> 5-1=4
((< (ro2ar (car RN)) (ro2ar (car (cdr RN)))) (- (ro2ar (cdr RN)) (ro2ar (car RN)))) ;; "IV" -> 5-1=4
(t (+ (ro2ar (car RN)) (ro2ar (cdr RN)))))) ;; "VI" -> 5+1=6
(t (+ (ro2ar (car RN)) (ro2ar (cdr RN)))))) ;; "VI" -> 5+1=6</lang>
</lang>


{{out}}
{{out}}

<pre>
(ro2ar '(M D C L X V I)) -> 1666
(ro2ar '(M D C L X V I)) ;=> 1666
</pre>


=={{header|Erlang}}==
=={{header|Erlang}}==