Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Teaching Functional Programming

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).

Goal

  1. Don't scare off newcomers
  2. Help popularize FP by helping people teach effectively

Strategy

  • 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 and filter from scratch
    • Compare to imperative language strategy
      • Loops vs recursion

Contributing

  1. Fork the repo
  2. Write your post
  3. Submit a pull request

Have Suggestions?

Submit an issue!

Emoji tags for commits, PRs and comments

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:

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.