Sorry if this question is too basic, but I am trying to learn Haskell
and from tiem to time I get stuck. (And forgive me, I haev a heavy
procedural background, so functional programming is hard for me)
I am trying to use 'read' to create a random generator, applying it on
some text. As the Report, says:
# In addition, 'read' may be used to map an arbitrary string (not
# necessarily one produced by 'show') onto a value of type 'StdGen'.
# In general, the 'read' instance of 'StdGen' has the following
# properties:
#
# * It guarantees to succeed on any string.
#
# * It guarantees to consume only a finite portion of the string.
#
# * Different argument strings are likely to result in different
# results.
But it does not succeed on "any string". Code follows
\begin{code}
module Pepe where
import Random
pepin :: StdGen
pepin = read "cosita"
pepe :: StdGen
pepe = read "cositaLinda"
\end{code}
If I evaluate pepin, results are:
Hugs> pepin
38273 1 :: StdGen
(360 reductions, 554 cells)
But if I evaluate pepe, all changes:
Hugs> pepe
Program error: Prelude.read: no parse
(380 reductions, 694 cells)
Am I misunderstanding something, or is StdGen -> read buggy?
As you can see, I am using Hugs, version Sep 2006 to test.
TIA, best regards,
Zara
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe