flat_map is like fold -- it's a complete friggin' mess because it's some super generic thing that obfuscates everything!
-
-
-
Replying to @JakeGoulding
I think multiplicity is very significant for how we think of things. while/for/loop/if all exist and are useful to distinguish
2 replies 0 retweets 0 likes -
Replying to @Gankra_
I agree that first-class multiplicity is useful to have, but so is having an abstraction over it.
1 reply 0 retweets 0 likes -
Replying to @JakeGoulding
it's always nice to have an abstraction when you want it, but many abstractions are *completely friggin confusing*.
1 reply 0 retweets 1 like -
Replying to @Gankra_ @JakeGoulding
one should generally avoid applying unifying abstractions unless there's a compelling reason to. Not just because it exists.
2 replies 0 retweets 1 like -
Replying to @Gankra_
Are you suggesting that monads don’t have a “compelling reason”? (Not that Rust has monads, naturally)
1 reply 0 retweets 0 likes -
Replying to @JakeGoulding
the only one I think I've heard was having a generic `(F . G) T => (G . F) T` (Vec<Option<T>> => Option<Vec<T>>) via
@sgriff.1 reply 0 retweets 0 likes -
Replying to @Gankra_ @JakeGoulding
err
@sgrif But even that hurts my brain (How do I get None? One None? All Nones???)2 replies 0 retweets 0 likes -
there's very marginal value in "this is nothing more than a Frobit with an inverted Bleepblop clause": x <~ y $ z
3 replies 0 retweets 0 likes
Yeah I agree that it's easy to overabstract and give terrible names. But functions like `sequence` have enormous value
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.