Markus Triska
f52c9772a7
also include a newline in portray_clause/1
2020-04-13 01:24:15 +02: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
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
Mark Thom
7621155a89
change wording of QueryCannotBePostedAsFact to QueryCannotBeDefinedAsFact, remove old commented code in read.rs
2020-04-12 16:01:53 -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
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
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
Markus Triska
4d32b6976a
add library(freeze) to make zcompare/3 work
2020-04-08 22:09:59 +02:00
Markus Triska
e442fddc66
tuples_in/2 now works
2020-04-08 17:49:06 +02:00
Markus Triska
794ceac440
clpz_monotonic/0 --> monotonic/0
2020-04-06 23:05:57 +02:00
Mark Thom
a3c3afba48
fix list index offset bug ( #314 )
2020-04-06 16:15:36 -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
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
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
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
Mark Thom
54dce9b60e
Merge pull request #294 from triska/format
...
ENHANCED: format_//2 now supports ~a, ~d, ~Nd, ~D, ~ND, ~Nn, ~i and ~*
2020-03-19 20:00:40 -03:00
Markus Triska
f09a3142a6
ENHANCED: format_//2 now supports ~a, ~d, ~Nd, ~D, ~ND, ~Nn, ~i and ~*
2020-03-19 21:51:53 +01:00
Mark Thom
b1d8eff019
remove Addr::PStrTail ( #276 )
2020-03-17 02:03:29 -06:00
Mark Thom
f9c4a40d60
add set_input/1, set_output/1
2020-03-15 23:29:21 -06:00
Mark Thom
8e318f76a7
correct contextual quoting of chars
2020-03-15 21:15:42 -06:00
Markus Triska
17a448e045
support 'h' to print help message during toplevel interaction
2020-03-15 13:42:51 +01:00
Markus Triska
7ff11dce35
support 'p' to reprint answer with max depth, allowing w -> p -> w ...
2020-03-15 13:26:49 +01:00