
Ryan Ingram wrote:
Prelude> let inf = repeat 1 Prelude> inf [1,1,(lots of output until I press ctrl-c),Interrupted. (I expect this to happen) Prelude> let x = inf (no output here!) Prelude> :t x x :: [Integer] Prelude> return inf [1,1,(lots of output until I press ctrl-c),Interrupted. (I also expect this to happen) Prelude> y <- return inf [1,1,(lots of output until I press ctrl-c),Interrupted. (I do not expect this to happen here!) Prelude> :t y
<interactive>:1:0: Not in scope: 'y'
Is this a bug? Why does "y <- return exp" have different behavior than "let y = exp"? Is there a way to make GHCi not print the result of an action but still make my variables get bound?
That's weird. Prelude> (x,y) <- return $ (repeat 1, repeat 2) Prelude> Just x <- return $ Just (repeat 1) [1,1,1,... Prelude> (x,_) <- return $ (repeat 1, repeat 2) [1,1,1,... Prelude> Just (x,y) <- return $ Just (repeat 1, repeat 2) Prelude> It seems that GHCi outputs the contents of the variable you've created when there's only one of them. - Sam