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
Stephan Renatus
45d4f46024
main: skip args[0]
...
This is a bit pedantic, it's unlikely that the executable would be
called `-v` or `--version`. However, it seems slightly more correct to
disregard argv[0] when checking flags.
Signed-off-by: Stephan Renatus <srenatus@chef.io >
2020-03-28 09:07:44 +01:00
Stephan Renatus
896f2aeb74
main: add -v/--version flag
...
Added a new dependency to take care of pulling in the version from git
at build time.
Args handling is minimalistic, but there wasn't any before, so I figured
this might do for now. (Eventually, some proper `--help` and usage
output might come in handy?)
Signed-off-by: Stephan Renatus <srenatus@chef.io >
2020-03-27 19:59:50 +01:00
Mark Thom
7de39611f3
Merge pull request #305 from srenatus/sr/typo
...
examples/least_time.pl: fix typo
2020-03-27 14:35:17 -03:00
Stephan Renatus
7e6be23287
examples/least_time.pl: fix typo
...
Signed-off-by: Stephan Renatus <srenatus@chef.io >
2020-03-27 18:29:17 +01:00
Mark Thom
cac76d4739
Merge branch 'master' into develop
2020-03-26 22:01:25 -06:00
Mark Thom
194e5dc94e
initial commit for merge
2020-03-26 22:01:23 -06:00
Mark Thom
f7629362d7
Merge branch 'master' of https://github.com/mthom/rusty-wam
2020-03-19 20:42:37 -06:00
Mark Thom
ea0c396114
add least_time example
2020-03-19 20:42:11 -06:00
Mark Thom
057e2d8056
provide contextual information in the return value of try_in_situ_result
2020-03-19 20:41:58 -06:00
Mark Thom
487fe21e25
#278
2020-03-19 17:49:17 -06:00