Path: csiph.com!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Tim Rentsch Newsgroups: comp.lang.c Subject: Re: Bart's Language Date: Sat, 22 Mar 2025 07:12:58 -0700 Organization: A noiseless patient Spider Lines: 47 Message-ID: <86msddkvbp.fsf@linuxsc.com> References: <20250320163436.941@kylheku.com> <20250321101440.282@kylheku.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Date: Sat, 22 Mar 2025 15:12:59 +0100 (CET) Injection-Info: dont-email.me; posting-host="8c00933fd2fdb83fc14e0f99a9437a0f"; logging-data="101837"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19HmjUNCWr074FhbKloZaobutxYs3teNlI=" User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux) Cancel-Lock: sha1:DHV9gX/a5Qzqw4jNYOKGtmFLWAY= sha1:ANMPZNKl4VInucICbUL61TUg1MA= Xref: csiph.com comp.lang.c:391504 Kaz Kylheku <643-408-1753@kylheku.com> writes: > On 2025-03-21, bart wrote: > >> On 20/03/2025 23:45, Kaz Kylheku wrote: >> >>> On 2025-03-20, Waldek Hebisch wrote: >>> >>>> bart wrote: >>>> >>>>> In this case, just write it like that, and only adjust it for the >>>>> somewhat different syntax: >>>>> >>>>> func foo:int = >>>>> let int c := c1(10) >>>>> let int b := c + c2(2) >>>>> let int a := b+c3(c) >>>>> bar() >>>>> baz() >>>>> return c >>>>> end >> >> >> In your description you wrote that declarations can be written >> >>>> "out of order" and compiler will rearrange them in correct >>>> order. That looked like great opportunity to write obfuscated >>>> code. >>> >>> I made a language feature like that: mlet. >>> >>> https://www.nongnu.org/txr/txr-manpage.html#N-2B3072E9 >>> >>> This allows for circular references in order to support >>> the construction of lazy objects: >>> >>> 1> (mlet ((a (lcons 1 b)) >>> (b (lcons 0 a))) >>> (take 20 a)) >>> (1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0) >> >> I don't understand what's going on above; the example here is a >> bit clearer, other than that z at the end: > > What's going on is that [...] Just a short reminder that this is comp.lang.c, and nothing about any of the discussions above has anything to do with C.