Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #133636

Re: Roman numerals , recognizer "0r".

From dxf <dxforth@gmail.com>
Newsgroups comp.lang.forth
Subject Re: Roman numerals , recognizer "0r".
Date 2025-06-09 13:42 +1000
Organization i2pn2 (i2pn.org)
Message-ID <2ce249aa06ffa026b7ea087ed20c6d0612301dc6@i2pn2.org> (permalink)
References <nnd$3b511631$511bab64@a22533c0c24c276e> <2b70970932fa6f4379e708e30e8857f6@www.novabbs.com> <de084ed29e5acc412c06ed739c24929f22313288@i2pn2.org>

Show all headers | View raw


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

Back to comp.lang.forth | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Roman numerals , recognizer "0r". albert@spenarnc.xs4all.nl - 2025-06-08 13:26 +0200
  Re: Roman numerals , recognizer "0r". zbigniew2011@gmail.com (LIT) - 2025-06-08 14:41 +0000
    Re: Roman numerals , recognizer "0r". dxf <dxforth@gmail.com> - 2025-06-09 02:07 +1000
      Re: Roman numerals , recognizer "0r". zbigniew2011@gmail.com (LIT) - 2025-06-08 16:23 +0000
        Re: Roman numerals , recognizer "0r". dxf <dxforth@gmail.com> - 2025-06-09 11:46 +1000
          Re: Roman numerals , recognizer "0r". zbigniew2011@gmail.com (LIT) - 2025-06-09 09:23 +0000
          Re: Roman numerals , recognizer "0r". albert@spenarnc.xs4all.nl - 2025-06-09 12:39 +0200
            Re: Roman numerals , recognizer "0r". zbigniew2011@gmail.com (LIT) - 2025-06-09 12:16 +0000
            Re: Roman numerals , recognizer "0r". albert@spenarnc.xs4all.nl - 2025-06-09 17:44 +0200
      Re: Roman numerals , recognizer "0r". dxf <dxforth@gmail.com> - 2025-06-09 13:42 +1000
        Re: Roman numerals , recognizer "0r". zbigniew2011@gmail.com (LIT) - 2025-06-09 09:26 +0000
          Re: Roman numerals , recognizer "0r". dxf <dxforth@gmail.com> - 2025-06-09 21:04 +1000
            Re: Roman numerals , recognizer "0r". zbigniew2011@gmail.com (LIT) - 2025-06-09 12:14 +0000
              Re: Roman numerals , recognizer "0r". dxf <dxforth@gmail.com> - 2025-06-09 23:55 +1000
        Re: Roman numerals , recognizer "0r". zbigniew2011@gmail.com (LIT) - 2025-06-09 09:58 +0000
  Re: Roman numerals , recognizer "0r". anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2025-06-08 16:35 +0000
    Re: Roman numerals , recognizer "0r". anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2025-06-09 06:23 +0000
    Re: Roman numerals , recognizer "0r". anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2025-06-09 07:15 +0000
    Re: Roman numerals , recognizer "0r". albert@spenarnc.xs4all.nl - 2025-06-09 12:20 +0200

csiph-web