On Sat, Sep 15, 2007 at 08:35:02PM -0700, 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?
GHC manual, Flag reference, Interactive-mode options: | -fno-print-bind-result │ Turn off printing of binding results in GHCi │ dynamic │ - │ with a link to: http://haskell.org/ghc/dist/current/docs/users_guide/interactive-evaluation.html#ghci-stmts "Note that let bindings do not automatically print the value bound, unlike monadic bindings." "The automatic printing of binding results can be supressed with :set -fno-print-bind-result (this does not supress printing the result of non-binding statements). You might want to do this to prevent the result of binding statements from being fully evaluated by the act of printing them, for example." Stefan
signature.asc
Description: Digital signature
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe