Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.prolog > #14630
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Newsgroups | comp.lang.prolog |
| Subject | Lets see what the "experts" say (Was: Scryer Prolog totally clueless how DCGs work) |
| Date | 2025-07-09 11:36 +0200 |
| Message-ID | <104ld75$1vsct$2@solani.org> (permalink) |
| References | <104ld1i$1vsct$1@solani.org> |
Hi,
Well Ulrich Neumerkel is of course the biggest
quack of all as usual:
> > order of clause can only influence termination properties
> This depends on your definition of termination. There is universal
> termination and (much rarer) existential termination.
>
> In a pure, monotonic program, order of clauses does not even
influence > universal termination. That is, a goal G_0, false will
terminate in
> the very same way regardless of the clause order. (For a goal G_0,
> false both universal and existential termination are the same.)
https://github.com/mthom/scryer-prolog/discussions/3004#discussioncomment-13704812
Complete idiots, nothing to do with terminations. DCGs
that consume characters do anyway terminate. What is he talking about?
Bye
Mild Shock schrieb:
> Woa! This nonsense really made my day:
>
> https://github.com/mthom/scryer-prolog/discussions/3004
>
> It starts with, where somebody "tried" a declarative DCG
> using constraint logic programming:
>
> number_tail(0, 0) --> [].
> number_tail(Number, DigitsCount) -->
> ("," | ""),
> digit(Digit),
> number_tail(Digits, RestDigitsCount),
> {
> DigitsCount #= RestDigitsCount + 1,
> Number #= Digit * 10 ^ RestDigitsCount + Digits
> }.
>
> He then noticed that its not deterministic. And since
> it is not deterministic, clause ordering changes the
> result when onced via once/1.
>
> LoL
>
> If DCGs had a cut, one would any way do:
>
> number_tail(Number, DigitsCount) -->
> ("," | ""),
> digit(Digit), !,
> number_tail(Digits, RestDigitsCount),
> {
> DigitsCount #= RestDigitsCount + 1,
> Number #= Digit * 10 ^ RestDigitsCount + Digits
> }.
> number_tail(0, 0) --> [].
>
> Push the determinancy into the DCG. Otherwise you have
> an explosion of choice points, and a lot of things go
> totally wrong.
>
> But the new DCG standard has no cut (!)/2.
Back to comp.lang.prolog | Previous | Next — Previous in thread | Next in thread | Find similar
Scryer Prolog totally clueless how DCGs work Mild Shock <janburse@fastmail.fm> - 2025-07-09 11:33 +0200
Lets see what the "experts" say (Was: Scryer Prolog totally clueless how DCGs work) Mild Shock <janburse@fastmail.fm> - 2025-07-09 11:36 +0200
Payed Ass-Lickers all around (Was: Lets see what the "experts" say) Mild Shock <janburse@fastmail.fm> - 2025-07-09 11:38 +0200
Its all about the money, not about quality (Was: Payed Ass-Lickers all around) Mild Shock <janburse@fastmail.fm> - 2025-07-09 11:42 +0200
A case of dumbification by committee membership? (Was: Its all about the money, not about quality) Mild Shock <janburse@fastmail.fm> - 2025-07-09 20:01 +0200
The stack overflow user by the name false (Was: Lets see what the "experts" say) Mild Shock <janburse@fastmail.fm> - 2025-07-15 11:50 +0200
The choice is a little arbitrary from one angle (Re: The stack overflow user by the name false) Mild Shock <janburse@fastmail.fm> - 2025-07-15 11:59 +0200
Does Scryer Prolog have all tricks up its sleeves? [Occurs Check] (Was: Scryer Prolog totally clueless how DCGs work) Mild Shock <janburse@fastmail.fm> - 2025-08-04 19:47 +0200
csiph-web