| Deutsch English Français Italiano |
|
<2ce249aa06ffa026b7ea087ed20c6d0612301dc6@i2pn2.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!i2pn.org!i2pn2.org!.POSTED!not-for-mail From: dxf <dxforth@gmail.com> Newsgroups: comp.lang.forth Subject: Re: Roman numerals , recognizer "0r". Date: Mon, 9 Jun 2025 13:42:51 +1000 Organization: i2pn2 (i2pn.org) Message-ID: <2ce249aa06ffa026b7ea087ed20c6d0612301dc6@i2pn2.org> References: <nnd$3b511631$511bab64@a22533c0c24c276e> <2b70970932fa6f4379e708e30e8857f6@www.novabbs.com> <de084ed29e5acc412c06ed739c24929f22313288@i2pn2.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Mon, 9 Jun 2025 03:42:53 -0000 (UTC) Injection-Info: i2pn2.org; logging-data="3906999"; mail-complaints-to="usenet@i2pn2.org"; posting-account="XPw7UV90Iy7EOhY4YuUXhpdoEf5Vz7K+BsxA/Cx8bVc"; User-Agent: Mozilla Thunderbird Content-Language: en-GB X-Spam-Checker-Version: SpamAssassin 4.0.0 In-Reply-To: <de084ed29e5acc412c06ed739c24929f22313288@i2pn2.org> 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