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


Groups > comp.lang.javascript > #124414

Prototype-Based Programming in Dogelog Player (Re: ANN: Dogelog Player 2.1.2 (Arrow Functions))

From Mild Shock <janburse@fastmail.fm>
Newsgroups comp.lang.javascript
Subject Prototype-Based Programming in Dogelog Player (Re: ANN: Dogelog Player 2.1.2 (Arrow Functions))
Date 2025-10-29 10:27 +0100
Message-ID <10dsmmg$ohv3$2@solani.org> (permalink)
References <10dnnh5$lh95$3@solani.org>

Show all headers | View raw


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

Mild Shock schrieb:
> Dear All,
> 
> We are happy to announce a new edition of
> the Dogelog Player:
> 
> - Arrow Functions:
> Using superintelligence in the loop, our development
> cycle has reached new hights of innovation and
> unprecedent delivery speed. Dogelog Player now has
> arrow functions using a (=>)/2 operator. The semantics
> is different from other offerings and based on ISO
> core standard witness calculation [7.1.1.4].
> 
> - Arrow Compilation:
> But we did not stop at interpreted arrow functions,
> the Prolog system also offers ahead of time
> compilation, which covers both library(yall) and
> library(apply_macros) from SWI-Prolog. But it goes
> beyond, there is no need for meta predicate
> declarations, and compiled arrow functions can
> be stored inside Prolog facts.
> 
> - Arrow Decompilation:
> The compilation compensates the additional effort
> of witness calculuation and we get same execution
> speed as SWI-Prolog. The code result is similarly
> cryptic. The good news is, the compilation can be
> easily undone. This is realized in Dogelog Player
> so that clause listing and the interactive debugger
> show the original arrow functions.
> 
> Have Fun!
> 
> Jan Burse, https://www.herbrand.ai/ , 27.10.2025

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


Thread

ANN: Dogelog Player 2.1.2 (Arrow Functions) Mild Shock <janburse@fastmail.fm> - 2025-10-27 13:11 +0100
  Prototype-Based Programming in Dogelog Player (Re: ANN: Dogelog Player 2.1.2 (Arrow Functions)) Mild Shock <janburse@fastmail.fm> - 2025-10-29 10:27 +0100
    Nested Arrows in Dogelog Player (Re: Prototype-Based Programming in Dogelog Player) Mild Shock <janburse@fastmail.fm> - 2025-11-05 17:33 +0100
      Interpreting Arrows in Dogelog Player (Re: Nested Arrows in Dogelog Player) Mild Shock <janburse@fastmail.fm> - 2025-11-12 01:06 +0100
        Strudel Coding in Dogelog Player (Was: Interpreting Arrows in Dogelog Player) Mild Shock <janburse@fastmail.fm> - 2025-11-23 22:23 +0100

csiph-web