-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a Why section to README #1052
Conversation
Looks reasonable to me. 👍 |
I think maybe you could expand on the phrase |
Scala provides many tools for functional programming such as algebraic data types, higher kinded types | ||
and implicits. However, common abstractions such as `Monoid`, `Monad`, and `Traverse` are currently missing from | ||
the standard library, leaving a bit to be desired. Among the goals of Cats is to fill this gap, and to provide a | ||
foundation for an [ecosystem of pure, typeful libraries](http://typelevel.org/projects/). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Warning: bike shedding - I'm sorry.
However, common abstractions such as
Monoid
,Monad
, andTraverse
are currently missing from the standard library, leaving a bit to be desired.
The word missing here suggests that Monoid
etc should be in the standard library, which is an opinion that many may hold, but at the end of the day is an opinion. I'd be inclined to focus on the positive rather than the negative. What do you think of something like the following?
The scala language supports both object-oriented and functional programming, and this is reflected in the hybrid OO/FP approach of its standard library. Cats is an exploration into what the standard library might look like if it focused mostly on functional programming. It takes advantage of scala features such as implicits and higher-kinded types to provide type classes such as Monoid, Monad, and Traverse, which provide composable abstractions for common use-cases. While Cats encourages reuse of some standard library data structures such as List
and Option
, it also provides some of its own algebraic data types such as Xor and Validated. <Typelevel plug here>
@ceedubs Good point, reworded it a bit, lmk what you think |
Thanks for adding this. |
Current coverage is 88.80%@@ master #1052 diff @@
==========================================
Files 214 228 +14
Lines 2717 3028 +311
Methods 2655 2980 +325
Messages 0 0
Branches 57 46 -11
==========================================
+ Hits 2408 2689 +281
- Misses 309 339 +30
Partials 0 0
|
👍 |
Inspired by a colleague who had a bit of trouble figuring out what problem Cats was solving