Future workOk, here is a suggestion. Propose a (@<)/2 for rational terms.
Arm–twist Prolog implementers for better
support for rational terms and tabling https://logtalk.org/papers/colp2012/coinduction_colp2012_slides.pdf
Ha Ha, LogNonsenseTalk at its best:--- Synchronet 3.20a-Linux NewsLink 1.114
Future work
Arm–twist Prolog implementers for better
support for rational terms and tabling https://logtalk.org/papers/colp2012/coinduction_colp2012_slides.pdf
Ok, here is a suggestion. Propose a (@<)/2 for rational terms.
Then talk again.
(@<) can be useful for tabling tries. So I guess LogNonsenseTalk--- Synchronet 3.20a-Linux NewsLink 1.114
work about co-induction was highly influenced by the following
seminal paper in logic programming dating back to the 70s:
How to Levitate
https://www.youtube.com/watch?v=z2I5J1ArmeM
LMAO!
Mostowski Collapse schrieb am Dienstag, 4. April 2023 um 10:05:18 UTC+2:
Ha Ha, LogNonsenseTalk at its best:
Future work
Arm–twist Prolog implementers for better
support for rational terms and tabling https://logtalk.org/papers/colp2012/coinduction_colp2012_slides.pdf
Ok, here is a suggestion. Propose a (@<)/2 for rational terms.
Then talk again.
Other Levitating experts on the scene: Ulrich Neumerkel--- Synchronet 3.20a-Linux NewsLink 1.114
and Markus Triska. It is now the year 2023, and they
still discuss number_chars/3:
number_chars/2 sometimes yields wrong results https://github.com/mthom/scryer-prolog/issues/1773
Whereas their Scryer Prolog cannot do correctly
(@<) on rational trees aka cyclic terms. It even never
comes to their mind, to apply KISS principle
to the number_chars/3 problem, and instead
read the requirement for what number_chars/3
accepts to read it as "integer" where:
integer (* 6.4 *)
= [ layout text sequence (* 6.4.1 *) ] ,
integer token (* 6.4.4 *) ;
Why not simply strip down the relevant production
requirement for number_chars/3 "integer token" only,
or maybe something even simpler, and forget about
all the layout nonsense? Most programming languages
do it this way. Just checkout parseInteger() or parseFloat()
across languages such as Java, JavaScript, Python etc..
No language designer is so debilated to include in the integer
or float syntax layout or comments. This happens only when
you have Levitating experts on the scene.
LoL
Mostowski Collapse schrieb am Dienstag, 4. April 2023 um 10:10:56 UTC+2:
(@<) can be useful for tabling tries. So I guess LogNonsenseTalk
work about co-induction was highly influenced by the following
seminal paper in logic programming dating back to the 70s:
How to Levitate
https://www.youtube.com/watch?v=z2I5J1ArmeM
LMAO!
Mostowski Collapse schrieb am Dienstag, 4. April 2023 um 10:05:18 UTC+2:
Ha Ha, LogNonsenseTalk at its best:
Future work
Arm–twist Prolog implementers for better
support for rational terms and tabling https://logtalk.org/papers/colp2012/coinduction_colp2012_slides.pdf
Ok, here is a suggestion. Propose a (@<)/2 for rational terms.
Then talk again.
This blog post has a nice easter egg at the end. https://www.philipzucker.com/harrop-checkpoint/--- Synchronet 3.20a-Linux NewsLink 1.114
Elaborating on it I get the following:
/* File comvars2.p */
:- op(1200, xfy, =>).
:- op(1150, fx, hypo).
term_expansion((:- hypo(F/N)), (H :- shift(in(H)))) :-
functor(H, F, N).
(A => B) :-
reset(B, in(C), Cont),
(Cont == 0 -> true; (C = A; shift(in(C))), Cont).
Here is test case of embedded implication backtracking:
:- hypo p/1.
?- reset((p(1) => p(2) => p(X)), in(_), Cont), Cont==0.
X = 2,
Cont = 0 ;
X = 1,
Cont = 0 ;
false.
As a last note, thanks for all your publicity--- Synchronet 3.20a-Linux NewsLink 1.114
on Logtalk. There's true in the saying that
there isn't such thing as bad publicity!
Ha Ha, twice nonsense doesn't give something Ok.--- Synchronet 3.20a-Linux NewsLink 1.114
Now Logtalk has this implemention:
variant(Term1, Term2) :-
\+ \+ subsumes_term(Term1, Term2),
\+ \+ subsumes_term(Term2, Term1). https://github.com/LogtalkDotOrg/logtalk3/blob/master/library/types/term.lgt#L102
Spot the 2 errors. Here are the errors:
Error 1: There is no need for garbage collection \+ \+ in
subsumes_term/2. It does already undo its bindings.
Thats the difference between subsumes/2 and subsumes_term/2,
that subsumes_term/2 does not leave some bindings,
is only a test predicate.
See also here:
On success, the bindings are undone. https://www.swi-prolog.org/pldoc/man?predicate=subsumes_term/2
Error 2: According to Ulrich Neumerkels account
here this is only half correct. There is a copy_term/2
missing:
variant_correct(A, B) :-
copy_term(A, AC),
subsumes_term(AC, B),
subsumes_term(B, AC). https://www.complang.tuwien.ac.at/ulrich/iso-prolog/built-in_predicates
Thats probably the most brain damaged nonsense I--- Synchronet 3.20a-Linux NewsLink 1.114
have ever seen. Whats the programming pattern?
Inverted control, which inverted again?
Printing messages and asking questions https://logtalk.org/manuals/userman/printing.html
Nobody uses such nonsense in practice. Neither
Python, nor JavaScript, provide something as absurd
as this "framework". Its kind of a perverted logging
framework, that lacks Internationalization/Localization.
And the bad news is, it goes really back to Quintus Prolog,
you find it here in this documentation:
Quintus Prolog User’s Manual https://quintus.sics.se/isl/quintus/pdf/quintus.pdf
But its not something that somebody would use in a
modern application. The most horrible section in the
Quintus Prolog User's Manual is the idea to
translate DCG. What can go wrong? You need to
understand the syntax and semantics of DCG to do that.
Ever found a translator that can massage DCGs?
The Quintus Prolog User's Manual describes a method that predates--- Synchronet 3.20a-Linux NewsLink 1.114
the idea of resource bundles, as found for example Java. It not only predates that idea, it also shows a different idea. It goes on:
"By default, generate_message/3 sends the
message term through the English message
generator, messages(’english/QU_messages’)."
The misery is then this advice:
To have all messages printed in another language, the basic steps are as follows
1. Take a copy of ‘QU_messages.pl’ and translate all the messages.
2. Test the translated ‘QU_messages.pl’ and then install it
in the Quintus Prolog directory hierarchy.
3. Install or re-install Quintus Prolog to get a version that uses the translated messages.
So there is no locale parameter in the runtime? And there is
no extension mechanism, you need to go into the system folders
and change them? And you cannot build applications, libraries
or systems that offer multiple languages, have bundled multiple
languages. Why, is there not enough memory on the disk
and in the RAM? LoL
Mild Shock schrieb am Freitag, 28. Juli 2023 um 13:58:06 UTC+2:
Thats probably the most brain damaged nonsense I
have ever seen. Whats the programming pattern?
Inverted control, which inverted again?
Printing messages and asking questions https://logtalk.org/manuals/userman/printing.html
Nobody uses such nonsense in practice. Neither
Python, nor JavaScript, provide something as absurd
as this "framework". Its kind of a perverted logging
framework, that lacks Internationalization/Localization.
And the bad news is, it goes really back to Quintus Prolog,
you find it here in this documentation:
Quintus Prolog User’s Manual https://quintus.sics.se/isl/quintus/pdf/quintus.pdf
But its not something that somebody would use in a
modern application. The most horrible section in the
Quintus Prolog User's Manual is the idea to
translate DCG. What can go wrong? You need to
understand the syntax and semantics of DCG to do that.
Ever found a translator that can massage DCGs?
Sysop: | DaiTengu |
---|---|
Location: | Appleton, WI |
Users: | 919 |
Nodes: | 10 (1 / 9) |
Uptime: | 70:02:02 |
Calls: | 12,185 |
Files: | 186,526 |
Messages: | 2,236,710 |