functional-programming
practice
functional-programming | practice | |
---|---|---|
5 | 2 | |
1,260 | 34 | |
- | - | |
2.4 | 6.5 | |
6 months ago | 15 days ago | |
TypeScript | Python | |
GNU General Public License v3.0 or later | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
functional-programming
-
Common Lisp: Fold- and Monoids
TypeScript is extremely powerful when it comes to expressing such functional programming constructs flexibly (there is a price to pay at the level of compiler feedback and developer's discipline to pay attention to pay safety).
But it allows for plenty of things that are neither possible in Haskell and to some extent Scala (of course, there's trade offs).
https://github.com/enricopolanski/functional-programming
-
Question: Wrapping a function with side effects
If your team has no prior experience, then might I suggest book clubs (or similar) for group training: https://github.com/enricopolanski/functional-programming
-
General Functional Programming Resources
I like Scott Wlaschin's blog: https://fsharpforfunandprofit.com/. Also, Giulio Canti's book: "Introduction to Functional Programming with fp-ts" (https://github.com/enricopolanski/functional-programming). Joining the FP slack is also a good idea since it's a great place to ask questions! Moreover, from my experiences, being Italian or at least based in the EU (not sure about the UK, though) seems to help as well 🙂. Would love to hear other suggestions
-
Functional programming Baby Steps: Options and Eithers
Functional Programming in TypeScript
- Is there a definitive resource for learning functional programming in TS?
practice
-
Common Lisp: Fold- and Monoids
What's particularly interesting is that folds are not limited to processing lists. For any recursive data structure, you can create a corresponding fold. What's even more interesting is that you can structure your code to automatically create the corresponding fold from a given recursive data structure!
Here's one example I wrote up using trees as the data structure:
https://github.com/tmoertel/practice/blob/master/EPI/09/soln...
-
How to Get Better at Recursion
One property that makes recursion attractive is that maps so easily to proof by induction. When designing algorithms, I'll often design a recursive version first, prove it correct, and then translate it into an iterative version. The translation is frequently required to implement the algorithm in common programming languages, most of which have poor support for recursion.
For an example, see https://github.com/tmoertel/practice/blob/master/dailycoding...
What are some alternatives?
sofp - A free book: "The Science of Functional Programming"
the-little-schemer - Racket code and annotations for The Little Schemer
pratica - 🥃 Functional Algebraic Data Types
functional-programming-jargon - Jargon from the functional programming world in simple terms!
fantasy-land - Specification for interoperability of common algebraic structures in JavaScript