[Haskell-cafe] Couple of questions about *let* within *do*
job.vranish at gmail.com
Tue Aug 10 12:52:34 EDT 2010
Yes, and yes :)
main = do
let prompt s = do
firstName <- prompt "What's your first name?"
lastName <- prompt "What's your last name?"
let bigFirstName = map toUpper firstName
bigLastName = map toUpper lastName
putStrLn $ "hey " ++ bigFirstName ++ " " ++ bigLastName ++ ", how are
On Tue, Aug 10, 2010 at 12:40 PM, michael rice <nowgate at yahoo.com> wrote:
> From: Learn You a Haskell
> Remember let bindings? If you don't, refresh your memory on them by reading
> this section. They have to be in the form of let bindings in expression,
> where bindings are names to be given to expressions and expression is the
> expression that is to be evaluated that sees them. We also said that in list
> comprehensions, the in part isn't needed. Well, you can use them in do
> blocks pretty much like you use them in list comprehensions. Check this out:
> import Data.Char
> main = do
> putStrLn "What's your first name?"
> firstName <- getLine
> putStrLn "What's your last name?"
> lastName <- getLine
> let bigFirstName = map toUpper firstName
> bigLastName = map toUpper lastName
> putStrLn $ "hey " ++ bigFirstName ++ " " ++ bigLastName ++ ", how are
> 1) Is there an implicit *in* before the last line above?
> 2) Within a do "in" the IO monad (or any other monad), can a *let* do
> something like this?
> let x = do -- in a different monad
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe