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


Groups > comp.lang.prolog > #14457 > unrolled thread

ANN: Dogelog Player 1.3.0 (Graph Plotting)

Started byMild Shock <janburse@fastmail.fm>
First post2025-02-26 14:10 +0100
Last post2025-03-14 13:22 +0100
Articles 3 — 1 participant

Back to article view | Back to comp.lang.prolog


Contents

  ANN: Dogelog Player 1.3.0 (Graph Plotting) Mild Shock <janburse@fastmail.fm> - 2025-02-26 14:10 +0100
    Re: ANN: Dogelog Player 1.3.0 (Graph Plotting) Mild Shock <janburse@fastmail.fm> - 2025-03-13 20:57 +0100
      Re: ANN: Dogelog Player 1.3.0 (Graph Plotting) Mild Shock <janburse@fastmail.fm> - 2025-03-14 13:22 +0100

#14457 — ANN: Dogelog Player 1.3.0 (Graph Plotting)

FromMild Shock <janburse@fastmail.fm>
Date2025-02-26 14:10 +0100
SubjectANN: Dogelog Player 1.3.0 (Graph Plotting)
Message-ID<vpn3rl$ol33$1@solani.org>
Dear All,

We are happy to announce a new edition of
the Dogelog player:

- Enhanced library(lists):
   We made the predicate free_variables/3 now public
in library(lists). It implements then ISO core standard
specification ISO 7.1.1.4 of witness variables. The
predicate does not appear in the Novacore kernel.

- Enhanced library(sequence):
   As an alternative we provide a new predicate firstof/2.
The predicate is bootstraped from what is used in
distinct/1, but makes use of free_variables/3 to determine
the keys for deduplication during backtracking. Has more
logical properties than distinct/2.

- New library(plot):
   The library(plot) can generate line plots in the form
of a SVG element. We currently provide the predicates
plot/1 and plot/2 which take a list of points (x,y1,..,yn)
and plot the lines (x,y1) ... (x,yn). The binary predicate
allows specifying various plot options.

Have Fun!

Jan Burse, http://www.xlog.ch/ , 26.02.2025

[toc] | [next] | [standalone]


#14472

FromMild Shock <janburse@fastmail.fm>
Date2025-03-13 20:57 +0100
Message-ID<vqvdb7$1ep91$1@solani.org>
In reply to#14457
Tired of pounding out the same old boring boilerplate
code over and over and over again. I'll show you how
to eliminate the boilerplate by using higher-order
programming: functions that take other functions as
arguments; or in Prolog, predicates that take other
predicates as arguments.

Somehow we shied away from implementing call/n for
our Prolog system. We thought our Prolog system has
only monomorphic predicate lookup caches and therefore
we kept a distance. This changed when we had the idea
to dynamically add a cache for the duration of a
higher order loop.

We could provide a new builtin call/n for our Prolog
system. Testing some list processing from different
angles we conclude our performance is middle field,
comparable to Scryer Prolog. This makes it feasible to
bring call/n and predicates such as maplist/n to the
upcoming release of Dogelog Player.

See also:

Higher Order in Dogelog Player
https://x.com/dogelogch/status/1900273770792644651

Higher Order in Dogelog Player
https://www.facebook.com/groups/dogelog

Mild Shock schrieb:
> Dear All,
> 
> We are happy to announce a new edition of
> the Dogelog player:
> 
> - Enhanced library(lists):
>    We made the predicate free_variables/3 now public
> in library(lists). It implements then ISO core standard
> specification ISO 7.1.1.4 of witness variables. The
> predicate does not appear in the Novacore kernel.
> 
> - Enhanced library(sequence):
>    As an alternative we provide a new predicate firstof/2.
> The predicate is bootstraped from what is used in
> distinct/1, but makes use of free_variables/3 to determine
> the keys for deduplication during backtracking. Has more
> logical properties than distinct/2.
> 
> - New library(plot):
>    The library(plot) can generate line plots in the form
> of a SVG element. We currently provide the predicates
> plot/1 and plot/2 which take a list of points (x,y1,..,yn)
> and plot the lines (x,y1) ... (x,yn). The binary predicate
> allows specifying various plot options.
> 
> Have Fun!
> 
> Jan Burse, http://www.xlog.ch/ , 26.02.2025

[toc] | [prev] | [next] | [standalone]


#14473

FromMild Shock <janburse@fastmail.fm>
Date2025-03-14 13:22 +0100
Message-ID<vr172r$1fatu$1@solani.org>
In reply to#14472
Our old Prolog system had a little computer algebra
system (CAS) that supported vectors and marices. In
the following we report on a new take that is less
leaning towards object oriented programming and more
leaning towards higher order logic programming.

Currently we only support numerical computation, either
floats or bigint. We could implement Prolog operations
that have strict vector or matrix signatures. Running
it in the browser, we can answer in a blink “What are
the last 8 digits of fib(1000000)?”.

See also:

Linear Algebra in Dogelog Player
https://x.com/dogelogch/status/1900509046924312767

Linear Algebra in Dogelog Player
https://www.facebook.com/groups/dogelog

Mild Shock schrieb:
> 
> Tired of pounding out the same old boring boilerplate
> code over and over and over again. I'll show you how
> to eliminate the boilerplate by using higher-order
> programming: functions that take other functions as
> arguments; or in Prolog, predicates that take other
> predicates as arguments.
> 
> Somehow we shied away from implementing call/n for
> our Prolog system. We thought our Prolog system has
> only monomorphic predicate lookup caches and therefore
> we kept a distance. This changed when we had the idea
> to dynamically add a cache for the duration of a
> higher order loop.
> 
> We could provide a new builtin call/n for our Prolog
> system. Testing some list processing from different
> angles we conclude our performance is middle field,
> comparable to Scryer Prolog. This makes it feasible to
> bring call/n and predicates such as maplist/n to the
> upcoming release of Dogelog Player.
> 
> See also:
> 
> Higher Order in Dogelog Player
> https://x.com/dogelogch/status/1900273770792644651
> 
> Higher Order in Dogelog Player
> https://www.facebook.com/groups/dogelog
> 
> Mild Shock schrieb:
>> Dear All,
>>
>> We are happy to announce a new edition of
>> the Dogelog player:
>>
>> - Enhanced library(lists):
>>    We made the predicate free_variables/3 now public
>> in library(lists). It implements then ISO core standard
>> specification ISO 7.1.1.4 of witness variables. The
>> predicate does not appear in the Novacore kernel.
>>
>> - Enhanced library(sequence):
>>    As an alternative we provide a new predicate firstof/2.
>> The predicate is bootstraped from what is used in
>> distinct/1, but makes use of free_variables/3 to determine
>> the keys for deduplication during backtracking. Has more
>> logical properties than distinct/2.
>>
>> - New library(plot):
>>    The library(plot) can generate line plots in the form
>> of a SVG element. We currently provide the predicates
>> plot/1 and plot/2 which take a list of points (x,y1,..,yn)
>> and plot the lines (x,y1) ... (x,yn). The binary predicate
>> allows specifying various plot options.
>>
>> Have Fun!
>>
>> Jan Burse, http://www.xlog.ch/ , 26.02.2025
> 

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.prolog


csiph-web