Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

125 lines (110 sloc) 3.2 kb
! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: help.markup help.syntax kernel math strings ;
IN: roman
HELP: >roman
{ $values { "n" integer } { "str" string } }
{ $description "Converts a number to its lower-case Roman Numeral equivalent." }
{ $notes "The range for this word is 1-3999, inclusive." }
{ $examples
{ $example "USING: io roman ;"
"56 >roman print"
"lvi"
}
} ;
HELP: >ROMAN
{ $values { "n" integer } { "str" string } }
{ $description "Converts a number to its upper-case Roman numeral equivalent." }
{ $notes "The range for this word is 1-3999, inclusive." }
{ $examples
{ $example "USING: io roman ;"
"56 >ROMAN print"
"LVI"
}
} ;
HELP: roman>
{ $values { "str" string } { "n" integer } }
{ $description "Converts a Roman numeral to an integer." }
{ $notes "The range for this word is i-mmmcmxcix, inclusive." }
{ $examples
{ $example "USING: prettyprint roman ;"
"\"lvi\" roman> ."
"56"
}
} ;
{ >roman >ROMAN roman> } related-words
HELP: roman+
{ $values { "x" string } { "y" string } { "z" string } }
{ $description "Adds two Roman numerals." }
{ $examples
{ $example "USING: io roman ;"
"\"v\" \"v\" roman+ print"
"x"
}
} ;
HELP: roman-
{ $values { "x" string } { "y" string } { "z" string } }
{ $description "Subtracts two Roman numerals." }
{ $examples
{ $example "USING: io roman ;"
"\"x\" \"v\" roman- print"
"v"
}
} ;
{ roman+ roman- } related-words
HELP: roman*
{ $values { "x" string } { "y" string } { "z" string } }
{ $description "Multiplies two Roman numerals." }
{ $examples
{ $example "USING: io roman ;"
"\"ii\" \"iii\" roman* print"
"vi"
}
} ;
HELP: roman/i
{ $values { "x" string } { "y" string } { "z" string } }
{ $description "Computes the integer division of two Roman numerals." }
{ $examples
{ $example "USING: io roman ;"
"\"v\" \"iv\" roman/i print"
"i"
}
} ;
HELP: roman/mod
{ $values { "x" string } { "y" string } { "z" string } { "w" string } }
{ $description "Computes the quotient and remainder of two Roman numerals." }
{ $examples
{ $example "USING: kernel io roman ;"
"\"v\" \"iv\" roman/mod [ print ] bi@"
"i\ni"
}
} ;
{ roman* roman/i roman/mod } related-words
HELP: ROMAN:
{ $description "A parsing word that reads the next token and converts it to an integer." }
{ $examples
{ $example "USING: prettyprint roman ;"
"ROMAN: v ."
"5"
}
} ;
ARTICLE: "roman" "Roman numerals"
"The " { $vocab-link "roman" } " vocabulary can convert numbers to and from the Roman numeral system and can perform arithmetic given Roman numerals as input." $nl
"A parsing word for literal Roman numerals:"
{ $subsections POSTPONE: ROMAN: }
"Converting to Roman numerals:"
{ $subsections
>roman
>ROMAN
}
"Converting Roman numerals to integers:"
{ $subsections roman> }
"Roman numeral arithmetic:"
{ $subsections
roman+
roman-
roman*
roman/i
roman/mod
} ;
ABOUT: "roman"
Jump to Line
Something went wrong with that request. Please try again.