Re: Roman numerals , recognizer "0r".

Liste des GroupesRevenir à cl forth 
Sujet : Re: Roman numerals , recognizer "0r".
De : dxforth (at) *nospam* gmail.com (dxf)
Groupes : comp.lang.forth
Date : 09. Jun 2025, 04:42:51
Autres entêtes
Organisation : i2pn2 (i2pn.org)
Message-ID : <2ce249aa06ffa026b7ea087ed20c6d0612301dc6@i2pn2.org>
References : 1 2 3
User-Agent : Mozilla Thunderbird
On 9/06/2025 2:07 am, dxf wrote:
On 9/06/2025 12:41 am, LIT wrote:
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,
...
Yep. Nothing better than FigForth :)  How about ...
 
: CREATE  0 VARIABLE -2 ALLOT ;

Actually CREATE wasn't needed here...

VARIABLE FORMER
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,
CONSTANT ESYM  CONSTANT SYM

: VAL ( ch -- u )
  0  SWAP  ESYM SYM DO
   DUP I C@ =
   IF  DROP I 7 + C@ DUP 0= ABS SWAP 5 * +  NIP 1 SWAP LEAVE  THEN
 LOOP
 OVER IF NIP ELSE DROP THEN ;

: ROMAN>ARABIC ( addr count -- u )
 0 -ROT  0 FORMER !  0 PRESENT !
 OVER + 1- DO
   I C@ VAL  DUP PRESENT !
   DUP FORMER @ <
   IF    -
   ELSE  DUP FORMER ! +
   THEN
 -1 +LOOP ;

S" MCMLIX" ROMAN>ARABIC . 1959  ok


Date Sujet#  Auteur
8 Jun15:41 * Re: Roman numerals , recognizer "0r".5LIT
8 Jun17:07 `* Re: Roman numerals , recognizer "0r".4dxf
8 Jun17:23  +* Re: Roman numerals , recognizer "0r".2LIT
9 Jun02:46  i`- Re: Roman numerals , recognizer "0r".1dxf
9 Jun04:42  `- Re: Roman numerals , recognizer "0r".1dxf

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal