caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] int/float_of_string
@ 2003-06-20 17:35 Christophe TROESTLER
  2003-06-23  7:55 ` Frederic van der Plancke
  2003-06-24  6:53 ` Pierre Weis
  0 siblings, 2 replies; 3+ messages in thread
From: Christophe TROESTLER @ 2003-06-20 17:35 UTC (permalink / raw)
  To: O'Caml Mailing List

Hi,

I noticed that there are some disparities in the way string are
converted to int/float :

        Objective Caml version 3.06+36 (2003-06-19)

# int_of_string "34\000xx";;
- : int = 34
# float_of_string "34\000xx";;
Exception: Failure "float_of_string".

Is this intentional?  I suppose it is not and float_of_string does the
right thing.

On a related note, it seems that the only way to decode an int/float
within a string is to create a new string containing the substring.
Moreover one must know the length of the number in advance.  Wouldn't
it be useful to have primitives like:

int_of_string_at : string -> int -> (int, int)
float_of_string_at : string -> int -> (int, float)

with usage like 

let (pos_after_the_number, decoded_number) = float_of_string_at s start

?  (I know such thing can be done with Scanf but I believe such
primitives can simplify and speed up¹ Scanf with no slowdown on
int_of_string / float_of_string.)

Cheers,
ChriS


---
¹ For what simple minded benchs worth, int_of_string can be as much as
1000% faster than Scanf.

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Caml-list] int/float_of_string
  2003-06-20 17:35 [Caml-list] int/float_of_string Christophe TROESTLER
@ 2003-06-23  7:55 ` Frederic van der Plancke
  2003-06-24  6:53 ` Pierre Weis
  1 sibling, 0 replies; 3+ messages in thread
From: Frederic van der Plancke @ 2003-06-23  7:55 UTC (permalink / raw)
  To: O'Caml Mailing List



Christophe TROESTLER wrote:
> 
> Hi,
> 
> I noticed that there are some disparities in the way string are
> converted to int/float :
> 
>         Objective Caml version 3.06+36 (2003-06-19)
> 
> # int_of_string "34\000xx";;
> - : int = 34
> # float_of_string "34\000xx";;
> Exception: Failure "float_of_string".
> 
> Is this intentional?  I suppose it is not and float_of_string does the
> right thing.

And, BTW, I find the next unsafe behaviour very annoying, especially
when reading text files (while I was still innocent, I got hit):

# int_of_string "9876543210" ;;
- : int = -860875030

# int_of_float 9876543210.0;;
- : int = -860875030

Since OCaml aims to be safe, and since IMO adding an overflow check to
int_of_string & relatives would not be costly (relatively speaking), I
think it should be done. We could add unsafe_int_of_string-like functions
for speed afficionados.

Frédéric vdP

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Caml-list] int/float_of_string
  2003-06-20 17:35 [Caml-list] int/float_of_string Christophe TROESTLER
  2003-06-23  7:55 ` Frederic van der Plancke
@ 2003-06-24  6:53 ` Pierre Weis
  1 sibling, 0 replies; 3+ messages in thread
From: Pierre Weis @ 2003-06-24  6:53 UTC (permalink / raw)
  To: Christophe TROESTLER; +Cc: caml-list

Hi,

[...]
> ---
> ¹ For what simple minded benchs worth, int_of_string can be as much as
> 1000% faster than Scanf.
> 
> -------------------

In order to make Scanf faster, I would be glad to have your ``simple
minded benchs'' since my own figures are not compatible with yours:
ocamlopt compiled Scanf code is indeed fast (normally <= 2 times the
runtime of the ``cc -O2''-compiled C corresponding code).

Thanks in advance,

Pierre Weis

INRIA, Projet Cristal, Pierre.Weis@inria.fr, http://pauillac.inria.fr/~weis/


-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-06-24  6:53 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-20 17:35 [Caml-list] int/float_of_string Christophe TROESTLER
2003-06-23  7:55 ` Frederic van der Plancke
2003-06-24  6:53 ` Pierre Weis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).