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


Groups > comp.lang.java.programmer > #53745

Landin's Knot in Dogelog Player (Re: ANN: Dogelog Player 1.3.5 (Cyclic Terms))

Path csiph.com!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From Mild Shock <janburse@fastmail.fm>
Newsgroups comp.lang.java.programmer
Subject Landin's Knot in Dogelog Player (Re: ANN: Dogelog Player 1.3.5 (Cyclic Terms))
Date Fri, 15 Aug 2025 19:57:28 +0200
Message-ID <107nse8$3cc5$4@solani.org> (permalink)
References <106l4on$366q0$3@solani.org>
MIME-Version 1.0
Content-Type text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding 7bit
Injection-Date Fri, 15 Aug 2025 17:57:28 -0000 (UTC)
Injection-Info solani.org; logging-data="110981"; 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:3EwnV8vYAyQlxXa3qoO5b9AU30g=
In-Reply-To <106l4on$366q0$3@solani.org>
X-User-ID eJwNwoERACEIA7CVhLaA43Aq+4/wf4kQFicZCmo0fJsr8Xucg+fZW3GFQZdr65UdWMhLC6yWTYLZZs576wMlsRP0
Xref csiph.com comp.lang.java.programmer:53745

Show key headers only | View raw


Dogelog Player is a Prolog system written
in 100% Prolog for the target platforms JavaScript,
Python and Java. We recently introduced the
display of cyclic terms in the top-level.

As a next iteration we turned all built-ins
upside down, gave it either a visitor pattern
or union find, so that they can deal with cyclic
terms. The final step is then to untie Landin's Knot.

The new predicates term_decompose/2 and
term_canonical/2 have found applications in
library(sequence) and library(aggregate). The
result is primarily a structural compare among

cyclic terms, which the end-user can lift
to a canonical compare.

See also:

Landin's Knot in Dogelog Player
https://qiita.com/j4n_bur53/items/f096445f959998768316

Mild Shock schrieb:
> Dear All,
> 
> We are happy to announce a new edition
> of the Dogelog player:
> 
> - Enhanced Core:
> We provide internally unify_cyclic() which implements
> Hopcroft & Karp (1971) algorithm and can deal with
> cyclic terms. It is accessible via the built-in
> predicate (=)/2 and also used by the Prolog interpreter
> for solving clauses. Similar there is an enhanced
> (==)/2 available to the end-user.
> 
> - Enhanced library(tools):
> The debugger is now cyclic term aware and uses a term
> factoring based on a new same_term/2 before printing
> a goal. The display is simply a conjunction Equation_1,
> .., Equation_n, Goal, where the equations are necessary
> to break cycles. As before Prolog variables are still
> printed by their serial number.
> 
> - Enhanced library(session):
> The answer display is now cyclic term aware and uses
> the same term factoring as the debugger. Answer
> substitutions and cycle breaking equations are
> interspersed. We tried hard to not break old features,
> such as fresh singleton variable names, fresh multiton
> variable names and marked variables suppression.
> 
> Have Fun!
> 
> Jan Burse, https://www.herbrand.ai/ , 02.08.2025

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


Thread

ANN: Dogelog Player 1.3.5 (Cyclic Terms) Mild Shock <janburse@fastmail.fm> - 2025-08-02 15:44 +0200
  Landin's Knot in Dogelog Player (Re: ANN: Dogelog Player 1.3.5 (Cyclic Terms)) Mild Shock <janburse@fastmail.fm> - 2025-08-15 19:57 +0200
    Program Sharing in Dogelog Player (Re: ANN: Dogelog Player 1.3.5 (Cyclic Terms)) Mild Shock <janburse@fastmail.fm> - 2025-08-20 15:12 +0200

csiph-web