These are currently my working notes on how to best teach FP
I am by no means an expert in teaching this material! However, most current materials are "okay" at best. There seems to be an increase in people interested in FP, but many get scared off at the word "functor" or unfamiliar syntax (ie: not from the C-family).
- Don't scare off newcomers
- Help popularize FP by helping people teach effectively
- Keep it practical
- Use a flexible language (Racket) so that you don't need to switch syntax for different concepts
- Progressive
- Start similar to the student's background (ex. compare to Java)
- Less magic is literally demystifying
- Reimplement common patterns to show how things work
map
,fold
(left and right),scan
andfilter
from scratch
- Compare to imperative language strategy
- Loops vs recursion
- Reimplement common patterns to show how things work
- Fork the repo
- Write your post
- Submit a pull request
Meaning | Symbol | Markdown |
---|---|---|
Idea | 💡 | :bulb: |
Approval | 👍 | :+1: |
Improving code format/structure | 🎨 | :art: |
Writing docs | 📝 | :memo: |
Bug Fix | 🐛 | :bug: |
Removing code or files | 🔥 | :fire: |
Fixing CI build | 💚 | :green_heart: |
Adding tests | ✅ | :white_check_mark: |
Upgrading dependencies | ⬆️ | :arrow_up: |
Downgrading dependencies | ⬇️ | :arrow_down: |
Fix linter warning or typo | 👕 | :shirt: |