func FromRoman
FromRoman parses a Roman numeral back to an integer. It panics on any malformed input (e.g. "IIII", "IC", "VV").
Community realm. Read the code first. Community realm, deployed by its author. Read the code before you interact or send coins.
Package romannum is a pure port of the classic Roman-numeral converter kata: ToRoman / FromRoman, valid for 1..3999. ...
gno.land/p/moul/x/daily/romannum/v0Roman-numeral converter — ToRoman, FromRoman.
A pure port of the classic kata, valid for 1..3999. ToRoman uses greedy
subtractive notation (panics out of range); FromRoman accepts a numeral only
if it is canonical (it must round-trip through ToRoman), so malformed forms
like IIII, VV, or IC are rejected. Deterministic — no time, randomness, or
I/O — and free of any realm coupling.
1import "gno.land/p/moul/x/daily/romannum/v0"
2
3s := romannum.ToRoman(2024) // "MMXXIV"
4n := romannum.FromRoman(s) // 2024 (panics on a malformed numeral)
Live demo: r/moul/x/daily/romannumdemo
· render it at /r/moul/x/daily/romannumdemo/v0.
Part of moul/gno-contracts — moul's versioned gno.land contracts. See the repository for the full catalog, build/test tooling, and usage.
🧪 Highly experimental — potentially vibe-coded. Not audited; may break, change, or be removed at any time. Do not use with anything of value. Full disclaimer: DISCLAIMER.
Package romannum is a pure port of the classic Roman-numeral converter kata: ToRoman / FromRoman, valid for 1..3999. Deterministic — no time, randomness or I/O — and free of any realm coupling, so it is reusable as a library.
A live demo of this package (an interactive integer↔Roman converter) is at r/moul/x/daily/romannumdemo(/r/moul/x/daily/romannumdemo/v0).