Path: csiph.com!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail From: Mild Shock Newsgroups: comp.lang.javascript Subject: Nested Arrows in Dogelog Player (Re: Prototype-Based Programming in Dogelog Player) Date: Wed, 5 Nov 2025 17:33:39 +0100 Message-ID: <10efu93$207$1@solani.org> References: <10dnnh5$lh95$3@solani.org> <10dsmmg$ohv3$2@solani.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Wed, 5 Nov 2025 16:33:39 -0000 (UTC) Injection-Info: solani.org; logging-data="2055"; mail-complaints-to="abuse@news.solani.org" User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0 SeaMonkey/2.53.21 Cancel-Lock: sha1:S2HQMDxCVFXuyHgH07IrDp4ZsgY= X-User-ID: eJwFwQkBACAIBLBKgBxgHD77R3DDMbZ2NZji4S2K+Gh4UZIcte1r8FxaKcHe8b08mbGDBvkpo54n4VHJ9AFKoBWF In-Reply-To: <10dsmmg$ohv3$2@solani.org> Xref: csiph.com comp.lang.javascript:124415 Hi, This post is Dedicated to the Memory of Scheme R4RS. The ISO core standard witness calculation [7.1.1.4] is the most hated among Prolog programmers, since it produces false positive for nested (^)/2 occurences. We show how to use it nevertheless for arrow functions compilation. We identified outside-in processing as the culprit of false positives, the use of inside-out processing then shows a promissing ability to minimize free variable. We wish what we have done statically, could also be done dynamically. But we are facing serious new rational trees challenges. Bye See also: Nested Arrows in Dogelog Player https://medium.com/2989/1fd3fdc55ac3 Mild Shock schrieb: > Hi, > > We recently made public a new version of Dogelog > Player that features arrow functions via the syntax > operator (=>)/2. An interesting mark of the current > release is that the arrow functions are automatically > compiled and decompiled inside static clauses. > > Although our main use case was higher order logic > programming, an alternative use case is object > oriented logic programming. In particular we make a > short dive into the variant of so called prototype > based programming, also sometimes termed the > classless approach. > > We use arrow functions (=>)/2 with a Pythonesk > self parameter, to give dicts properties that will > behave like methods. Creating copies, as sometimes > suggested by Logtalk, might work well for value > object. But to update an arrow function inside a > prototype, we used a non-backtracking mutator. > > Bye > > See also: > > Prototype-Based Programming in Dogelog Player > https://qiita.com/j4n_bur53/items/3a68d42af9b86fce8bdf >