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
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
Sysop: | DaiTengu |
---|---|
Location: | Appleton, WI |
Users: | 1,030 |
Nodes: | 10 (1 / 9) |
Uptime: | 00:30:05 |
Calls: | 13,342 |
Calls today: | 5 |
Files: | 186,574 |
D/L today: |
4,471 files (1,370M bytes) |
Messages: | 3,357,183 |