Mark Thom
02eb24cd57
correct partial string copying by resetting threshold to redirected partial string stubs to 0
2020-04-12 23:33:07 -06:00
Mark Thom
787fbe1bb6
use partial_string/1 in place of the removed string/1 in bimetatrans_ruleml.pl
2020-04-12 22:27:53 -06:00
Mark Thom
7678858bab
update Cargo.lock
2020-04-12 22:01:59 -06:00
Mark Thom
bf7a28f07c
bump version to 0.8.119
2020-04-12 21:59:22 -06:00
Mark Thom
9e54b1406c
Merge pull request #338 from triska/master
...
also include a newline in portray_clause/1
v0.8.119
2020-04-12 20:35:48 -03:00
Markus Triska
f52c9772a7
also include a newline in portray_clause/1
2020-04-13 01:24:15 +02:00
Mark Thom
ea5203d8c3
Merge pull request #337 from triska/master
...
ADDED: provide a rudimentary version of portray_clause/1
2020-04-12 20:10:21 -03:00
Mark Thom
0fad2f9953
make write_term_to_chars work with variable terms ( #335 )
2020-04-12 18:10:45 -06:00
Mark Thom
d3a9392421
provide read_term_from_chars/2 ( #334 )
2020-04-12 17:26:11 -06:00
Markus Triska
208927544d
ADDED: provide a rudimentary version of portray_clause/1
...
At the moment, library(format) seems to be a fitting place.
In the eventual library organization, portray_clause/1 and
related predicates may be moved to their own dedicated library.
2020-04-13 01:04:52 +02:00
Mark Thom
7621155a89
change wording of QueryCannotBePostedAsFact to QueryCannotBeDefinedAsFact, remove old commented code in read.rs
2020-04-12 16:01:53 -06:00
Mark Thom
4ddc4ebf46
Merge pull request #333 from triska/master
...
incorporate the latest improvements in the description of partial strings
2020-04-12 16:00:01 -03:00
Markus Triska
786f0b5ca2
incorporate the latest improvements in the description of partial strings
...
As of 6e4b76a3b4 , the use of
partial_string/3 can be replaced by (=)/2 in this example.
2020-04-12 20:46:22 +02:00
Mark Thom
b4ff429bfa
Merge pull request #332 from triska/master
...
ENHANCED: ~w now supports compound terms, and ~q is now also available
2020-04-12 15:00:20 -03:00
Mark Thom
f2cf0ec459
move write_term_to_chars/3 to src/prolog/lib/charsio.pl
2020-04-12 14:42:39 -06:00
Mark Thom
0380d70a46
add write_term_to_chars/3 to iso_ext.pl ( #288 )
2020-04-12 14:29:28 -06:00
Mark Thom
28099b9812
correct misleading error for modules ( #300 )
2020-04-12 12:51:59 -06:00
Mark Thom
2ce4f602c0
be more judicious with at_cdr in print_string ( #295 )
2020-04-12 12:18:15 -06:00
Mark Thom
5e81fb4754
throw exception when attempting to post query as goal ( #329 )
2020-04-12 12:07:41 -06:00
Markus Triska
c9f1a95343
ENHANCED: ~w now supports compound terms, and ~q is now also available
2020-04-12 19:56:01 +02:00
Mark Thom
97d8d07947
recognize empty lists as partial strings ( #328 )
2020-04-11 23:08:15 -06:00
Mark Thom
4f0adad78e
remove string/1, use a more general test for the partial_string/1 type test ( #328 )
2020-04-11 22:47:52 -06:00
Mark Thom
0499005db5
throw error when trying to use partial lists as DCG terminal-sequence ( #286 )
2020-04-11 22:40:29 -06:00
Mark Thom
aedffb3cfe
remove unnecessary use of partial_string in bimetatrans example
2020-04-11 22:02:17 -06:00
Mark Thom
fff96e69db
Merge pull request #310 from triska/bimeta_example
...
Bimeta example
2020-04-11 22:03:10 -03:00
Mark Thom
abc99c9dd8
Merge branch 'master' of https://github.com/mthom/rusty-wam
2020-04-11 21:59:25 -06:00
Mark Thom
6e4b76a3b4
compile special instructions for partial strings when recognized
2020-04-11 21:53:28 -06:00
Mark Thom
92d8642133
do not accept [X|Xs] patterns as DCG non-terminals ( #286 )
2020-04-11 21:52:45 -06:00
Mark Thom
184124586b
Merge pull request #320 from triska/master
...
add library(freeze) to make zcompare/3 work
2020-04-09 12:26:31 -03:00
Markus Triska
4d32b6976a
add library(freeze) to make zcompare/3 work
2020-04-08 22:09:59 +02:00
Mark Thom
45a99e576d
Merge pull request #318 from triska/master
...
extend description of strings and partial strings
2020-04-08 16:59:13 -03:00
Markus Triska
fac6d54986
extend description of strings and partial strings
...
Also, explain in more detail what this feature means to Prolog
application programmers, and the strategic direction of Scryer.
2020-04-08 21:07:00 +02:00
Mark Thom
036c35729c
Merge pull request #316 from triska/master
...
clpz_monotonic/0 --> monotonic/0
2020-04-08 13:18:42 -03:00
Markus Triska
e442fddc66
tuples_in/2 now works
2020-04-08 17:49:06 +02:00
Mark Thom
a3c3afba48
fix list index offset bug ( #314 )
2020-04-06 16:15:36 -06:00
Markus Triska
794ceac440
clpz_monotonic/0 --> monotonic/0
2020-04-06 23:05:57 +02:00
Mark Thom
6299d41cda
mark clp(X) item as completed, restore clp(Z) library description
2020-04-05 21:26:27 -03:00
Mark Thom
2e5ce0249e
Merge pull request #312 from triska/master
...
ADDED: CLP(ℤ), Constraint Logic Programming over Integers
2020-04-05 21:14:11 -03:00
Mark Thom
560298655b
consolidate Cargo.lock
2020-04-05 20:34:49 -06:00
Mark Thom
4086df27b2
merge with master
2020-04-05 20:33:45 -06:00
Mark Thom
d76ae413c4
use fixnums in place of bignums where possible
2020-04-05 20:32:16 -06:00
Markus Triska
8b1df2e9ca
ADDED: CLP(ℤ), Constraint Logic Programming over Integers
...
library(clpz) implements declarative integer arithmetic.
The most important predicates for reasoning about integers are:
(#=)/2 equality
(#\=)/2 disequality
(#<)/2 less than
(#>)/2 greater than
(#=<)/2 less than or equal to
(#>=)/2 greater than or equal to
In addition, the library provides several global constraints, such as
all_distinct/1 and global_cardinality/2, and reification predicates
that reflect the truth values of constraints into integer variables.
Enumeration predicates such label/1 and labeling/2 can be used to
search for solutions over finite domains.
Almost all Prolog programs also reason about integers. Therefore, I
recommend to add this library to your .scryerrc configuration file so
that declarative integer arithmetic is available in all your programs.
More information about CLP(ℤ):
https://www.metalevel.at/prolog/clpz
Enjoy!
2020-04-06 01:59:41 +02:00
Mark Thom
c8855f97e8
allocate empty partial strings
2020-04-05 02:55:30 -06:00
Mark Thom
bbf1aa1668
use copy_term/3 to print residual goals ( #254 )
2020-04-05 02:55:04 -06:00
Mark Thom
141f3bcec3
harmonize partial strings with complete strings ( #276 ), make Addr a copyable type
2020-04-03 10:22:46 -06:00
Mark Thom
8f11fd7c62
Merge pull request #306 from srenatus/sr/version-argument
...
main: add -v/--version flag
2020-04-03 00:35:51 -03:00
Mark Thom
9f960c25a5
add bimetatrans_ruleml.pl to examples
2020-03-30 20:00:08 -06:00
Markus Triska
11a616917a
introduce and use nonterminal list//1
...
Example:
?- phrase(list(Ls), Ls0).
Ls = [], Ls0 = []
; Ls = [_A], Ls0 = [_A]
; Ls = [_A,_B], Ls0 = [_A,_B]
; Ls = [_A,_B,_C], Ls0 = [_A,_B,_C]
; ...
2020-03-31 01:28:16 +02:00
Markus Triska
a89f03f27d
embed literal lists directly in DCGs
...
Example use of direct embedding:
?- phrase("abc", Ls0, Ls).
Ls0 = [a,b,c|Ls].
2020-03-31 01:24:15 +02:00
Markus Triska
3faf36440c
naming: partial_list_ws//1 --> list_ws//1
...
A DCG describes a list, so "list" is an appropriate name.
2020-03-31 01:23:00 +02:00