[Haskell-beginners] Learn You a Haskell! I have a few questions!

Gilberto Melfe gilbertomelfe at gmail.com
Fri Apr 18 15:12:05 UTC 2014


Hi there to you all!

I've been reading through the first chapter of "Learn You a Haskell" and
I'd like to ask the community a few questions.

Any help would be appreciated...

-- ---------- ---------- ---------- ---------- ----------

All the standard Prelude functions that throw out an error when fed the []!

head
maximum
...

Are there safe versions anywhere, or do we have to define them ourselves?

-- ---------- ---------- ---------- ---------- ----------

This one is really important!

I understand that for the definition of product to work as it is:
  product [] must be equal to 1

But what if we want to add a product to something else???
Shouldn't the result be Nothing?
(I guess we would have to guard against this! But we must guard against the
parameter of product being the empty list, anyway. Otherwise we risk adding
1 when there is nothing do multiply)

(The same question arises with the functions and and or, and their boolean
results, I think! Right?)

-- ---------- ---------- ---------- ---------- ----------

-- ---------- Start Quote

Names can't be enumerated. What comes after "John"? I don't know.

-- ---------- End Quote

"a" to "z" then "aa" to "zz" then "aaa" to "zzz" and so on! Is it to
difficult or impossible to create a function that enumerates all possible
strings?

-- ---------- ---------- ---------- ---------- ----------

-- ---------- Start Quote

To make a list with all the numbers from 20 to 1, you can't just do [20..1],
you have to do [20,19..1].

-- ---------- End Quote

Why is this? If the first was greater than the second it would just
subtract! Right?

-- ---------- ---------- ---------- ---------- ----------

-- ---------- Start Quote

Watch out when using floating point numbers in ranges! Because they are not
completely precise (by definition), their use in ranges can yield some
pretty funky results.

ghci> [0.1, 0.3 .. 1]
[0.1,0.3,0.5,0.7,0.8999999999999999,1.0999999999999999]

-- ---------- End Quote

Can anyone explain me why it works for the first few values, and not
"completely"?

-- ---------- ---------- ---------- ---------- ----------

Any thoughts?

Thank You Very Much in advance!

Gilberto
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20140418/5cd2f577/attachment.html>


More information about the Beginners mailing list