![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
It's been a long time coming, but I'm finally beginning to grok pure FP. I'm in the process of rewriting SpaceCore (one of the most dead-central Actors in modern Querki) to make the guts of all the functions pure, pulling all the side-effects out to the edges. (Not out of any sense of righteous purity, but because I need these bloody things to be composable, and it's the best way to do it.)
And I just caught myself saying, "Ah, that class is a Semigroup; I should probably instantiate that typeclass, so that I can combine the instances".
No doubt you'll find me in some alley sometime soon, mumbling about Applicatives, Free Monads and other such Cthulhoid horrors. Have pity on me...
And I just caught myself saying, "Ah, that class is a Semigroup; I should probably instantiate that typeclass, so that I can combine the instances".
No doubt you'll find me in some alley sometime soon, mumbling about Applicatives, Free Monads and other such Cthulhoid horrors. Have pity on me...
(no subject)
Date: 2016-10-26 06:23 pm (UTC)(no subject)
Date: 2016-10-26 08:07 pm (UTC)(no subject)
Date: 2016-10-26 09:17 pm (UTC)(no subject)
Date: 2016-10-27 01:55 am (UTC)And yeah, it always lands you in a mirror reality, on the far side of The Curse of Lady Monadgreen...
(no subject)
Date: 2016-10-27 07:19 pm (UTC)If you encounter the urge to use a free monad and you're not authoring a very low-level library with performance tests, back away slowly until you reach a safe distance. Then run like hell.
(no subject)
Date: 2016-10-27 07:25 pm (UTC)I can see the appeal in principle, but so far I'm not adoring the resulting code (in particular, it sounds like things aren't entirely elegant with multiple algebras yet), and as you say, there's a lot of foot-shuffling when you bring up performance...