Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connectionsPath: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!news.quux.org!news.nk.ca!rocksolid2!i2pn2.org!.POSTED!not-for-mail
From: minforth@gmx.net (minforth)
Newsgroups: comp.lang.forth
Subject: Re: Parsing =?UTF-8?B?dGltZXN0YW1wcz8=?=
Date: Tue, 24 Jun 2025 00:42:09 +0000
Organization: novaBBS
Message-ID: <4a4c38c99d22d97314ed5750af38430d@www.novabbs.com>
References: <1f433fabcb4d053d16cbc098dedc6c370608ac01@i2pn2.org> <6ea4ccd1cb6ae8c828144444fe51fea9@www.novabbs.com> <70a3014f99baf5e43b32e1320d7b8cd482be04c1@i2pn2.org> <61ff078b04e03c7b65b6dff98f58b80b@www.novabbs.com> <2025Jun23.071834@mips.complang.tuwien.ac.at>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: i2pn2.org;
logging-data="1772653"; mail-complaints-to="usenet@i2pn2.org";
posting-account="BZ29EnRIXfdX99fE+pfHgueF2xuF1KvSpLJsfuOZy3Y";
User-Agent: Rocksolid Light
X-Rslight-Posting-User: 0338a3da6f3e9c9f1401b365bcd9c3ed8de2227a
X-Rslight-Site: $2y$10$N/2FTd3xU/6585i18HKP1.BID6.K7mN/kuo3XYsmrFLalpZcv9AG6
X-Spam-Checker-Version: SpamAssassin 4.0.0
On Mon, 23 Jun 2025 21:20:46 +0000, Hans Bezemer wrote:
> On 23-06-2025 23:03, minforth wrote:
>> On Mon, 23 Jun 2025 5:18:34 +0000, Anton Ertl wrote:
>>
>>> minforth@gmx.net (minforth) writes:
>>>> So, I made me a small extension to the locals word set. Using your
>>>> example SPIN (abc — cba), I can define it as follows:
>>>> : SPIN { a b c == c b a } ; \ no need for additional code before ;
>>>
>>> What is the advantage of using this extension over the Forth-2012:
>>>
>>> : spin {: a b c :} c b a ;
>>>
>>> ?
>>
>> Obviously, there is no advantage for such small definitions.
>>
>> For me, the small syntax extension is a convenience when working
>> with longer definitions. A bit contrived (:= synonym for TO):
>>
>> : SOME-APP { a f: b c | temp == n: flag z: freq }
>> \ inputs: integer a, floats b c
>> \ uninitialized: float temp
>> \ outputs: integer flag, complex freq
>> <: FUNC < ... calc function ... > ;>
>> \ emulated embedded function using { | xt: func }
>> < ... calc something ... > := temp
>> < ... calc other things ... > := freq / basic formula
>> < ... calc other things ... > := flag
>> < ... calc correction ... > := freq / better estimation
>> ;
>>
>> While working on such things, I can focus my eyes on the formulas,
>> all local values are visible in one place, and I don't have to
>> worry about tracking the data stack(s) for lost/accumulated items.
>>
>> As I said, it is nothing spectacular, just helpful. And to my own
>> eyes, it looks neater. ;-)
>>
>> And before dxf yowls again: it is still Forth. :o)
>
> Well.. Technically everything written in Forth is Forth. But it is not
> canonical Forth - because if it were canonical Forth, we would have
> covered locals in "Starting Forth" - and we didn't.
>
> Now, let's assume we found we were wrong. But there was a chapter in
> "Thinking Forth" called "The stylish stack" - not "The stylish locals".
> As a matter of fact, it states that "the stack is not an array" -
> meaning: not randomly accessible. And what are locals? Right. Randomly
> accessible.
>
> So, what is this? It's a feeble imitation of C. It's not part of the
> original design. Because if it were part of the original design, you
> would find out what it means to think differently. This is merely C
> thinking. Nothing else. Certainly not Forth thinking.
>
LOL ... I admit being a very non-canonical old guy :O)
--