Code written in Haskell is guaranteed to have no side effects.
Because no one will ever run it! LLLLEEEELLLLL
Name:
Anonymous2014-01-26 13:26
install BSD/Gentoo
Name:
Anonymous2014-01-26 13:35
Actually, the only thing guaranteed with Haskell is that to get harmless effects like writing to a log file you'll have to have sex with transformers, lifting, hoisting and other bullshit. While launching missiles is perfectly easy and allowed in the type system.
Name:
Anonymous2014-01-26 13:48
>>3`
>2014
>still using lift
data:image/jpeg;base64,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
Name:
Anonymous2014-01-26 14:15
>>4
Aren't you the cool guy. And how do you use monad transformers without lifting? I tried the "layers" package once, but it fucking died when I tried a monad stack with two StateT's in it.
If you have two or more of same transformers on the stack, how are you going to distinguish their levels without lifting, huh?
Name:
Anonymous2014-01-26 17:05
>>5
Just use one StateT with double the state parameters.
It's that easy.
Name:
Anonymous2014-01-27 12:40
>>6
In Haskell, the state update in StateT makes the whole state get copied even if you only needed to update just a little tidbit. Throwing away megabytes of memory just to update a double is a little inefficient, don't you think?
Monad transformers are such a mess that it's easier just to keep everything in IO with IORefs. You get the same (nonexistent) level of type safety, and no obscure "ContT( StateT (ErrorT (WriterT (ReaderT (MaybeT IO" bullshit.
Name:
Anonymous2014-01-27 13:53
>>7 megabytes of memory
Your program is not lazy enough, nigger.