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

    From Mild Shock@janburse@fastmail.fm to comp.lang.python on Wed Oct 29 10:29:43 2025
    From Newsgroup: comp.lang.python

    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

    --- Synchronet 3.21a-Linux NewsLink 1.2