From 05ba5f43589efb3e02526ebb7719587b3e4bba77 Mon Sep 17 00:00:00 2001 From: Markus Triska Date: Thu, 25 Jan 2024 21:31:08 +0100 Subject: [PATCH 1/2] rely on recently improved argument indexing for determinism This is possible as of 4fd37335f576240c25dfbfe6e70441aff166c60e. --- src/lib/format.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/format.pl b/src/lib/format.pl index 9280156fe..b89f892a4 100644 --- a/src/lib/format.pl +++ b/src/lib/format.pl @@ -1,5 +1,5 @@ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Written 2020-2023 by Markus Triska (triska@metalevel.at) + Written 2020-2024 by Markus Triska (triska@metalevel.at) Part of Scryer Prolog. I place this code in the public domain. Use it in any way you want. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ @@ -302,8 +302,8 @@ N is N0, % evaluate compound expression number_chars(N, Chars). -n_newlines(0) --> !. n_newlines(N0) --> { N0 > 0, N is N0 - 1 }, [newline], n_newlines(N). +n_newlines(0) --> []. /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ?- phrase(upto_what(Cs, ~), "abc~test", Rest). From 3505cc3ba027913ece90888f31d487a312d1a01e Mon Sep 17 00:00:00 2001 From: Markus Triska Date: Thu, 25 Jan 2024 21:33:27 +0100 Subject: [PATCH 2/2] update answers using latest toplevel output --- src/lib/format.pl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lib/format.pl b/src/lib/format.pl index b89f892a4..3b3d1dc4b 100644 --- a/src/lib/format.pl +++ b/src/lib/format.pl @@ -306,10 +306,10 @@ n_newlines(0) --> []. /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -?- phrase(upto_what(Cs, ~), "abc~test", Rest). -Cs = [a,b,c], Rest = [~,t,e,s,t]. -?- phrase(upto_what(Cs, ~), "abc", Rest). -Cs = [a,b,c], Rest = []. +?- phrase(format:upto_what(Cs, ~), "abc~test", Rest). + Cs = "abc", Rest = "~test". +?- phrase(format:upto_what(Cs, ~), "abc", Rest). + Cs = "abc", Rest = []. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ separate_digits_fractional(Arg, Sep, Num, Cs) :- @@ -444,9 +444,9 @@ ?- phrase(format:cells("~`at~50|", [], 0, [], []), Cs), phrase(format:format_cells(Cs), Ls). ?- phrase(format:cells("~ta~t~tb~tc~21|", [], 0, [], []), Cs). -Cs = [cell(0,21,[glue(' ',_A),chars("a"),glue(' ',_B),glue(' ',_C),chars("b"),glue(' ',_D),chars("c ...")])] + Cs = [cell(0,21,[glue(' ',_A),chars("a"),glue(' ',_B),glue(' ',_C),chars("b"),glue(' ',_D),chars("c")])]. ?- phrase(format:cells("~ta~t~4|", [], 0, [], []), Cs). -Cs = [cell(0,4,[glue(' ',_A),chars("a"),glue(' ',_B)])] + Cs = [cell(0,4,[glue(' ',_A),chars("a"),glue(' ',_B)])]. ?- phrase(format:format_cell(cell(0,1,[glue(a,_94)])), Ls).