View/Edit #33:from_roman

Switch to edit mode.

Name(s): from_roman
1:  "Copied from Lao-Tzu (#8084):from_roman May 17 02:27:07 1997"
2:  what = args[1]
3:  q = 1
4:  n = 0
5:  while (!(q > length(what)))
6:    if (what[q] == "M")
7:      n = n + 1000
8:    elseif (what[q] == "D")
9:      n = n + 500
10:   elseif (what[q] == "C" && `what[q + 1] ! E_RANGE => "A"' == "M")
11:     n = n + 900
12:     q = q + 1
13:   elseif (what[q] == "C" && `what[q + 1] ! E_RANGE => "A"' == "D")
14:     n = n + 400
15:     q = q + 1
16:   elseif (what[q] == "C")
17:     n = n + 100
18:   elseif (what[q] == "L")
19:     n = n + 50
20:   elseif (what[q] == "X" && `what[q + 1] ! E_RANGE => "A"' == "C")
21:     n = n + 90
22:     q = q + 1
23:   elseif (what[q] == "X" && `what[q + 1] ! E_RANGE => "A"' == "L")
24:     n = n + 40
25:     q = q + 1
26:   elseif (what[q] == "X")
27:     n = n + 10
28:   elseif (what[q] == "V")
29:     n = n + 5
30:   elseif (what[q] == "I" && `what[q + 1] ! E_RANGE => "A"' == "X")
31:     n = n + 9
32:     q = q + 1
33:   elseif (what[q] == "I" && `what[q + 1] ! E_RANGE => "A"' == "V")
34:     n = n + 4
35:     q = q + 1
36:   elseif (what[q] == "I")
37:     n = n + 1
38:   else
39:     raise(E_NONE, "Error with converting to roman numerals..")
40:   endif
41:   q = q + 1
42: endwhile
43: return n

Verb arguments: this none this
Verb perms: Readable eXecutable NOT-Debug
Verb owned by: Slacker (#55)

You are not logged in.

[home | help | who | search | setup | code]