Sujet : Re: Roman numerals , recognizer "0r". De : zbigniew2011 (at) *nospam* gmail.com (LIT) Groupes :comp.lang.forth Date : 08. Jun 2025, 15:41:10 Autres entêtes Organisation : novaBBS Message-ID :<2b70970932fa6f4379e708e30e8857f6@www.novabbs.com> References :1 User-Agent : Rocksolid Light
0 VARIABLE FORMER 0 VARIABLE PRESENT HERE 73 C, 86 C, 88 C, 76 C, 67 C, 68 C, 77 C, \ I V X L C D M HERE 0 C, 1 C, 2 C, 10 C, 20 C, 100 C, 200 C, : VAL ( ch -- u ) [ 0 ] LITERAL SWAP LITERAL LITERAL DO DUP I C@ = IF DROP I 7 + C@ DUP 0= SWAP 5 * + NIP 1 SWAP LEAVE THEN LOOP OVER IF NIP ELSE DROP THEN [ 0 0 ] ; 2DROP : ROMAN>ARABIC ( addr count -- u ) [ 0 ] LITERAL -ROT 0 FORMER ! 0 PRESENT ! OVER + 1- DO I C@ VAL DUP PRESENT ! DUP FORMER @ < IF - ELSE DUP FORMER ! + THEN -1 +LOOP ; No error checking; properly formatted Roman number as input is assumed. --