[Haskell-cafe] How can I stop GHCi from calling "show" for
IOactions?
Dougal Stanton
ithika at gmail.com
Thu Sep 20 17:50:38 EDT 2007
On 20/09/2007, Ryan Ingram <ryani.spam at gmail.com> wrote:
> I think a more consistent behavior would be to not print the LHS at
> all. If you wanted to print the result of the computation you could
> just do:
>
> Prelude> bar 5
>
> or, if you also wanted bound variables afterwards:
>
> Prelude> (x, Just y) <- bar 5
> Prelude> (x, Just y)
>
> Perhaps this is my imperative background speaking, but I don't see
> much difference at the GHCi prompt between these two:
>
> Prelude> let x = 5
> Prelude> x <- return 5
I agree with this interpretation. If I want to just *do* the action,
I'll type it. If I want to *store* the action then I'll bind it to
something. That's the intuition I have, anyway. And it works for pure
functions:
Prelude> let ns = [1..]
Prelude> [1..]
The difference between those two feels like the difference between:
Prelude> contents <- readFile "massive.txt"
Prelude> readFile "massive.txt"
But as Ryan mentioned, this may just be poor intuition from an overly
imperative mindset...
Cheers,
D.
More information about the Haskell-Cafe
mailing list