Skip to content

Instantly share code, notes, and snippets.

@otarza
Created December 24, 2018 11:04
Show Gist options
  • Save otarza/14fd045c4e1a402268ed56c321fcabfb to your computer and use it in GitHub Desktop.
Save otarza/14fd045c4e1a402268ed56c321fcabfb to your computer and use it in GitHub Desktop.
FP Starting resources
Topics/Resources to research:
* Currying
* Pattern matching
* Phil Wadler - “Theorems for free!”
* ICPF 2009 - Site - http://www.cs.nott.ac.uk/~pszgmh/icfp09.html Videos - https://vimeo.com/album/126865
* Why functional programming matters by John Hughes + review all papers written by John
* function overloading
* Induction
* Recursion
* Phil Wadler - why calculating is better than scheming https://www.cs.kent.ac.uk/people/staff/dat/miranda/wadler87.pdf
* Simon Peyton Jones - Parallel and Concurrent Programming in Haskell - https://www.microsoft.com/en-us/research/publication/a-tutorial-on-parallel-and-concurrent-programming-in-haskell/
Exercises:
- Sorted list exercise
- Define factorial using recursion - recfac n
- Define factorial using product - product [1..n]
- Prove both above factorials are same - product [1..n] = recfac n
- Implement reverse
- Implement zip
- Implement zip for innumerables - See Bart De Smet’s blog post: http://community.bartdesmet.net/blogs/bart/archive/2008/11/03/c-4-0-feature-focus-part-3-intermezzo-linq-s-new-zip-operator.aspx
- Implement drop on lists
- Implement append on lists
- Implement quick sort - Chapter 6 - Parallelism!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment