haskell - Why doesn't `putStrLn getLine` work? -


i'm complete newbie on haskell. haskell script ghci,

prelude> let = putstrln getline 

makes error this.

<interactive>:1:17:     couldn't match expected type `string'            against inferred type `io string'     in first argument of `putstrln', namely `getline'     in expression: putstrln getline     in definition of `a': = putstrln getline prelude>  

why doesn't work , how can print input stdin?

putstrln :: string -> io () getline :: io string 

the types not match. getline io action, , putstrln takes plain string.

what need bind line inside io monad in order pass putstrln. following equivalent:

a = line <- getline        putstrln line  = getline >>= \line -> putstrln line  = getline >>= putstrln 

Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -