Comments (5)
It seems to be a pattern that these functions come in flipped and non-flipped versions, so it doesn't seem unreasonable. I think the question of what it should be named is probably key. If the name seems to obviously indicate what it does, then it seems good to add. If the name isn't obvious, then it would require people to look up, and probably makes code using it harder to understand. I don't have any good ideas for a name, but I think that's the key question.
from extra.
What about mapMconcat
or mapSummarize
or mapSummarise
or just plain summarize
? @cdsmith has referred to mconcat as summarizing: https://cdsmithus.medium.com/monoids-are-composable-list-summarizers-77d2baf23ffc
from extra.
While I did write that article, I don't think the word "summarize" is sufficiently precise to make a good name. Here are some candidates off the top of my head:
foldEach
- this is probably my favorite name in generalfoldFor
- because sometimesfor
is used to meanflip map
, though lately it's been more often used forflip traverse
instead. A variant isfoldOver
, since we talk about folding over a list.mapFold
- I'm not a fan, but it's a sort of flip offoldMap
.
from extra.
I stand by my suggestion of paMdolf
, but I think that in the age of -XBlockArguments
(GHC >=8.6.1) the need for a distinct function is much lower: Just 3 & foldMap \m -> Sum (m * 2)
is actually pretty nice.
from extra.
Agreed summarise
doesn't seem right, since a function called summarise could do almost anything. I'm ok with foldEach/foldFor/mapFold, but have no strong preference on which, or if the function is useful enough with block arguments etc.
from extra.
Related Issues (20)
- Add function for (Maybe a, b) -> Maybe (a, b) HOT 5
- suggestion: mwhen :: Monoid a => Bool -> a -> a HOT 3
- fourth / fifth tuples? HOT 1
- GHC9.8: ambiguous reference to unzip HOT 1
- selectIndices HOT 2
- Add flip const HOT 9
- Add withEnvironment and withModifiedEnvironment HOT 1
- Use GHC's definition of spanEnd? HOT 3
- Documentation of `zipFrom` is misleading HOT 1
- `concatUnzip` is just a special case of folding monoids HOT 5
- Consider adding strict Var primitives HOT 2
- proposal to add filesWithExtension HOT 3
- Add (!?) function for lists HOT 3
- Make `notNull` for any `Foldable` HOT 3
- Build failures with GHC >= 9 in v1.5 to v1.7.6 HOT 2
- `groupOnKey :: Eq b => (a -> k) -> [a] -> [(k, [a])]` HOT 1
- NonEmpty input in Data.List.Extra.repeatedly HOT 2
- third3 isn't as lazy as second from Data.Bifunctor HOT 1
- Make replace not be partial HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from extra.