Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > comp.lang.prolog > #14664

The choice is a little arbitrary from one angle (Re: The stack overflow user by the name false)

From Mild Shock <janburse@fastmail.fm>
Newsgroups comp.lang.prolog
Subject The choice is a little arbitrary from one angle (Re: The stack overflow user by the name false)
Date 2025-07-15 11:59 +0200
Message-ID <10558pd$2a3sn$1@solani.org> (permalink)
References <104ld1i$1vsct$1@solani.org> <104ld75$1vsct$2@solani.org> <1055897$2a3gm$1@solani.org>

Show all headers | View raw


Hi,

Some Prolog systems have only:

true/0
fail/0

Then some other Prolog systems have:

true/0
fail/0
otherwise/0 (synonyme for true/0)
false/0 (synonyme for fail/0)

Why not include otherwise/0 as well in the ISO
core standard, it can be used to make if-then-else
more readable. Like instead of writing:

(X = red -> write('Roses');
  X = blue -> write('Violets');
  write('Onions')).

One would write:

(X = red -> write('Roses');
  X = blue -> write('Violets');
  otherwise -> write('Onions')).

Bye

Mild Shock schrieb:
> Now this line of code made me both smile and cry:
> 
> doge.pl: $(PROG)
>      $(file >$@,false :- \+true. ?- ['$<'],$(MAIN).)
> 
> Why define false so complicated:
> 
>       false :- \+ true.
> 
> Why not define it as follows:
> 
>       false :- fail.
> 
> The stack overflow user by the name false who
> institutionalized false/0 as a synonym for fail/0
> by way of ISO Prolog Corrigendum 2:
> 
> 8.15.5.4 Examples
> false.
>     Fails.
> 
> https://www.complang.tuwien.ac.at/ulrich/iso-prolog/dtc2#false
> 
> Mild Shock schrieb:
>> 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 | NextPrevious in thread | Next in thread | Find similar


Thread

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