Beefy Boxes and Bandwidth Generously Provided by pair Networks Bob
Think about Loose Coupling
 
PerlMonks  

Re: Rosetta PGA-TRAM

by merlponk (Scribe)
on Jun 15, 2009 at 10:13 UTC ( #771607=note: print w/ replies, xml ) Need Help??


in reply to Rosetta PGA-TRAM

Well, I'm not only new to Perlmonks, but even newer to Lisp, as I just started to learn it. So, since a lot of different solutions have been posted, I thought I post my Common Lisp version (there's probably a better way to do it and I hope there isn't a bug):

(defun roman_to_dec (roman) (if (not (equal roman "")) (let ((rtoa '((#\M . 1000) (#\D . 500) (#\C . 100) (#\L . 50) (#\X . 10) (#\V . 5) (#\I . 1)))) (reduce #'(lambda (a b) (- (+ a b) (* (mod a b) 2))) (map 'list #'(lambda (c) (cdr (assoc c rtoa))) (string-upcase roman))))))
Update: Ok, the
(if (not (equal roman ""))
could probably be removed, because no error checking is necessary regarding to the description, and it is halfhearted to boot.


Comment on Re: Rosetta PGA-TRAM
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://771607]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (13)
As of 2014-04-23 20:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (554 votes), past polls