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

Liste des GroupesRevenir à cl prolog 
Sujet : What about allowing numbers 1e19, etc.. (Re: Novacore is a Prolog profile that explores various relaxations)
De : janburse (at) *nospam* fastmail.fm (Mild Shock)
Groupes : comp.lang.prolog
Date : 21. Mar 2025, 19:21:36
Autres entêtes
Message-ID : <vrkanf$7b21$1@solani.org>
References : 1
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0 SeaMonkey/2.53.20
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.

Date Sujet#  Auteur
21 Mar 25 * Noacore is a Prolog profile that explores various relaxations6Mild Shock
21 Mar 25 `* What about allowing numbers 1e19, etc.. (Re: Novacore is a Prolog profile that explores various relaxations)5Mild Shock
21 Mar 25  +- Re: What about allowing numbers 1e19, etc.. (Re: Novacore is a Prolog profile that explores various relaxations)1Mild Shock
25 May08:22  `* prolog_file_name/2 was a big mistake [Novacore]3Mild Shock
25 May08:33   `* The recent extension/1 addition in Dogelog Player (Was: prolog_file_name/2 was a big mistake [Novacore])2Mild Shock
25 May08:39    `- Corr.: Typo (Was: The recent extension/1 addition in Dogelog Player)1Mild Shock

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal