episode-code-samples
milewski-ctfp-pdf
Our great sponsors
episode-code-samples | milewski-ctfp-pdf | |
---|---|---|
7 | 75 | |
922 | 10,691 | |
1.7% | - | |
7.2 | 5.3 | |
8 days ago | 5 days ago | |
Swift | TeX | |
MIT License | 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.
episode-code-samples
- SwiftUI app architecture - any recommended online resources?
-
Combine and functional programming
One resource I'd recommend is Point-Free - they'll teach you functional programming from the beginning.
-
What is a piece of code (or Framework, extension, etc.) that you add in every new project?
At a minimum, Composable Architecture, and now Dependencies from Point-Free.
-
On Not Drinking the FP Kool-Aid
I come from the iOS world and one of the most valuable resources I have found for understanding FP in Swift is https://www.pointfree.co These guys go over the theoretical concepts and then not only ask, "what's the point?" but they then go on to build out more complicated examples or even complete apps and publish useful libraries on GitHub.
- On using Dependency Injection with MVVM
milewski-ctfp-pdf
-
reflect-cpp - Now with compile time extraction of field names from structs and enums using C++-20.
Category Theory for Programmers by Bartosz Milewski (https://github.com/hmemcpy/milewski-ctfp-pdf/releases)
- Monads vs Classes
- Ask HN: Math for Programmers?
- Por que Elm é uma linguagem tão deliciosa?
-
On Not Drinking the FP Kool-Aid
Bartosz Milewski said it well in his introduction to Category Theory for Programmers:
-
I am learning category theory
My method was to spend 25 years listening to colleagues mumble about Category Theory and slowly picking up the basics. Even I didn't really use Category Theory in my abstraction work. It's just that after months of effort to crack my problem, I showed my pages of work to the Category Theory folks and they were like "oh, it's simply Yoneda this and Yoneda that and your proof can be done in 4 lines.".
That said, if I had to guess at what would be effective at getting up to speed without spending 25 years, would be to checkout https://github.com/hmemcpy/milewski-ctfp-pdf Category Theory for Programmers. Milewski was one of those people who were like "Oh, it's simply Yoneda this and Yoneda that", and he figured it out all himself in parallel without seeing my proof.
But I doubt it will be like, knowing Category Theory will enable you to have super powers for abstraction design. Rather it will be a matter of having enough mathematical tools at your disposal plus the right inspiration at the right time to realize that ones of those tools can happen to solve your abstraction programming problem you happen to be facing at some moment, in a way that is not obvious, if you are lucky. In fact, you likely have to first guess at what the right abstraction is and then fall back on Category Theory to verify the sanity of your guess.
Well, will wind up being less tensor than peers to point of being tagged as tuple when you walk in; but still 'All about the block'.
Independent of mathematical numerical systems used, everthing gets loaded at hoursX0000. Everything else after that is just bracket arrangements.
https://bartoszmilewski.com/2014/10/28/category-theory-for-p...
-
Online courses that use, but don't teach, Haskell?
Category Theory for Programmers comes to mind.
-
Why Functional Programming Should Be the Future of Software
That seems a little silly to me and I think we're splitting hairs with what it means to do category/set theory. I don't know category or set theory, so I hope you will forgive me for using yet another allegory.
Let's say I make a type class for Groups (in the abstract algebra sense). The rationale behind this is that there's an algorithm for exponentiation which is O(log(n)) versus the naive O(n) algorithm. So if you make an instance that's a Group, you get to use this fast exponentiation.
Sure, to understand and use this type class you have to understand what a Group is. However, I think it's a bit of a stretch to tell someone "in order to use Group you must first learn abstract algebra" because they'll think you're telling them to take a university level course. In actuality, they don't have to know much at all (they don't even need to understand _why_ the exponentiation algorithm works) - they just need to know what is a lawful Group.
Like this is my understanding of Functors/Applicatives/Monads. I kind of know their shape and how to use them. If you asked me about any of the underlying math I would shrug and maybe draw a pig (https://bartoszmilewski.com/2014/10/28/category-theory-for-p...).
- Understanding Haskells type system deeply
What are some alternatives?
semantic-source - Parsing, analyzing, and comparing source code across many languages
paip-lisp - Lisp code for the textbook "Paradigms of Artificial Intelligence Programming"
web-dev-golang-anti-textbook - Learn how to write webapps without a framework in Go.
practicing-ruby-manuscripts - Collection of source manuscripts for publicly released Practicing Ruby articles
owasp-masvs - The OWASP MASVS (Mobile Application Security Verification Standard) is the industry standard for mobile app security.
Yup - Dead simple Object schema validation
You-Dont-Know-JS - A book series on JavaScript. @YDKJS on twitter.
applied-fp-course - Applied Functional Programming Course - Move from exercises to a working app!
Publications - Misc. publications, conference slides, etc. For more, go to http://BartoszMilewski.com
CppCoreGuidelines - The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++
rio-orphans - A standard library for Haskell
TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript output.