Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #197588
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Lean CLP for Dogelog Player (Re: ANN: Dogelog Player 2.1.3 (Dot Notation)) |
| Date | 2025-11-28 14:20 +0100 |
| Message-ID | <10gc7jq$od7n$2@solani.org> (permalink) |
| References | <10g1dmf$hf3g$2@solani.org> |
Hi, Many existing and evolving constraint logic programming projects resemble some ancient invention of gunpowder. For example SWI-Prologs 9.3.35 corouting for delayed goals is mainly based on unify hooks. We show how verify hooks, already used in formerly Jekejeke Prolog, can be braught to Dogelog Player in a 100% Prolog fashion. Since the recent version of Dogelog Player supports cyclic terms, we could let the Jini out of the bottle, and provide the experimental library(edge/railgun) to model delayed goals with nothing else than Alain Colmerauers rational trees. The result is a Lean CLP of ca. 100 lines of code, that already provides a simple constraint (#\=)/2 and a global constraint all_different/1. The results are encouraging. For problems that are not over constrained, Dogelog Player leaves existing Prolog systems clearly behind, showing a 2-3x times speed-up against SWI-Prolog and a 20-30x times speed-up against Trealla Prolog. For more constrained problems we suggest ommiting forward checking in favor of a form of ahead of time (AOT) variable ordering. With this approach and for Sudoku problems we are then in the midfield between SWI-Prolog and Trealla Prolog. Bye See also: Lean CLP for Dogelog Player https://qiita.com/j4n_bur53/items/addf1fc86856dd682dcb Mild Shock schrieb: > Dear All, > > We are happy to announce a new edition > of the Dogelog Player: > > - Dot Notation: > We borrowed from formerly Jekejeke Prolog > optionable custom binary forms. An operator > declaration such as op(100, yfx, '.') does > now parse and unparse the dot notation A.B > as '$DOT'(A,B). Avoiding a functor clash > with the consing notation [A|B]. The > implementation is 100% Prolog, and thus > uniformly available for the JavaScript, > Python and Java target. > > - Arrow Notation: > We borrowed from formerly Jekejeke Prolog > optionable custom variadic forms. An operator > declaration such as op(700, xfx, '=>') does > now parse and unparse the arrow notation > (P => G) as '$ANON'(H,K,B,...). Compared to > library(lambda), it leads to more efficient > single step reductions inside the new > library(arrow). Again uniformly available > for the JavaScript, Python and Java target. > > - DCG phrase/3: > This was a gap that slipped our attention. > It turns out that Dogelog Player didn't have > DCG phrase/3, although it had already > DCG (-->)/2. Luckily the step from (-->)/2 > to phrase/3 is relatively small and this > release features this predicate. Turns out it > can be used for Strudel style music coding. > > Have Fun! > > Jan Burse, https://www.herbrand.ai/ , 24.11.2025
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
ANN: Dogelog Player 2.1.3 (Dot Notation) Mild Shock <janburse@fastmail.fm> - 2025-11-24 11:57 +0100
Lean CLP for Dogelog Player (Re: ANN: Dogelog Player 2.1.3 (Dot Notation)) Mild Shock <janburse@fastmail.fm> - 2025-11-28 14:20 +0100
Re: Lean CLP for Dogelog Player (Re: ANN: Dogelog Player 2.1.3 (Dot Notation)) Gilmeh Serda <gilmeh.serda@nothing.here.invalid> - 2025-11-30 20:25 +0000
Icelandish Idiot payed Putins Troll (Was: Lean CLP for Dogelog Player) Mild Shock <janburse@fastmail.fm> - 2025-12-01 11:30 +0100
Make the Sudoku solver faster [GigaLIPS via NPU] (Re: Lean CLP for Dogelog Player) Mild Shock <janburse@fastmail.fm> - 2025-12-01 11:37 +0100
Porting Railgun CLP(FD) to SWI-Prolog (Re: Lean CLP for Dogelog Player) Mild Shock <janburse@fastmail.fm> - 2026-01-11 23:05 +0100
Supersonic FF for Railgun CLP(FD) (Re: Porting Railgun CLP(FD) to SWI-Prolog) Mild Shock <janburse@fastmail.fm> - 2026-01-21 21:27 +0100
csiph-web