Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.prolog > #14483

What about allowing numbers 1e19, etc.. (Re: Novacore is a Prolog profile that explores various relaxations)

From Mild Shock <janburse@fastmail.fm>
Newsgroups comp.lang.prolog
Subject What about allowing numbers 1e19, etc.. (Re: Novacore is a Prolog profile that explores various relaxations)
Date 2025-03-21 19:21 +0100
Message-ID <vrkanf$7b21$1@solani.org> (permalink)
References <vrkadh$7arh$1@solani.org>

Show all headers | View raw


Hi,

Somehow I have the feeling it doesn't make
sense to only recognize floating point numbers
as number literals that have a period in it.

Most programming languages I have encountered
also recognize floating point numbers when
they have an exponent e or E in it:

- Python:
 >>> 1e19
1e+19

- JavaScript:
 > 1e19
10000000000000000000

JavaScript is a little special. Since it has a
integer subset inside there floating point numbers.
Now I find that SWI-Prolog also allows 1e19:

/* SWI-Prolog 9.3.20 */
?- X = 1e19.
X = 1.0e+19.

I think this is a good idea. Since there is no
confusion. Most Prolog systems I checked never
alias an operator e with a number:

/* SWI-Prolog 9.3.20 */
?- op(500,yfx,e).
true.

?- X = 1 e 2.
X = 1 e 2.

Bye

Mild Shock schrieb:
> Interestingly a flag strict_iso could solve a few
> vexing problems. For example the ISO core standard
> did only mention floor/1 with signature F → I.
> 
> So in GNU Prolog I can do:
> 
> /* GNU Prolog 1.5.0 */
> 
> ?- current_prolog_flag(strict_iso, X).
> X = on
> yes
> 
> ?- X is floor(1).
> uncaught exception: error(type_error(float,1),(is)/2)
> 
> ?- set_prolog_flag(strict_iso, off).
> yes
> 
> ?- X is floor(1).
> X = 1
> yes
> 
> A few Prolog systems don’t share the above behavior,
> like SWI-Prolog for example doesn’t throw the type error.
> Also SWI-Prolog has nowhere a flag strict_iso.
> 
> Currently I have changed my Prolog system to tell me:
> 
> /* Dogelog Player 1.3.1 */
> 
> ?- current_prolog_flag(strict_iso, X).
> X = off.

Back to comp.lang.prolog | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Noacore is a Prolog profile that explores various relaxations Mild Shock <janburse@fastmail.fm> - 2025-03-21 19:16 +0100
  What about allowing numbers 1e19, etc.. (Re: Novacore is a Prolog profile that explores various relaxations) Mild Shock <janburse@fastmail.fm> - 2025-03-21 19:21 +0100
    Re: What about allowing numbers 1e19, etc.. (Re: Novacore is a Prolog profile that explores various relaxations) Mild Shock <janburse@fastmail.fm> - 2025-03-21 19:29 +0100
    prolog_file_name/2 was a big mistake [Novacore] Mild Shock <janburse@fastmail.fm> - 2025-05-25 09:22 +0200
      The recent extension/1 addition in Dogelog Player (Was: prolog_file_name/2 was a big mistake [Novacore]) Mild Shock <janburse@fastmail.fm> - 2025-05-25 09:33 +0200
        Corr.: Typo (Was: The recent extension/1 addition in Dogelog Player) Mild Shock <janburse@fastmail.fm> - 2025-05-25 09:39 +0200
  How difficult is a Knowledbase notion? (Was: Novacore is a Prolog profile that explores various relaxations) Mild Shock <janburse@fastmail.fm> - 2025-07-02 09:33 +0200
    C++ programming or a PhD in Macro defs (Was: How difficult is a Knowledbase notion?) Mild Shock <janburse@fastmail.fm> - 2025-07-02 09:35 +0200
      Workers never had the blessing of Paul Tarau [Prolog missed Web 2.0] (Was: C++ programming or a PhD in Macro defs) Mild Shock <janburse@fastmail.fm> - 2025-07-02 09:49 +0200
        General Magic didn't predict the Future (Was: Workers never had the blessing of Paul Tarau [Prolog missed Web 2.0]) Mild Shock <janburse@fastmail.fm> - 2025-07-02 10:07 +0200
          Antique Programming Style versus Modern Programming Style [SWI-Prolog] (Was: Workers never had the blessing of Paul Tarau [Prolog missed Web 2.0]) Mild Shock <janburse@fastmail.fm> - 2025-07-02 15:54 +0200
            Grand mothers kitchen is nevertheless the best, who knows? (Was: Antique Programming Style versus Modern Programming Style [SWI-Prolog]) Mild Shock <janburse@fastmail.fm> - 2025-07-02 16:06 +0200

csiph-web