Created
December 24, 2018 11:04
-
-
Save otarza/14fd045c4e1a402268ed56c321fcabfb to your computer and use it in GitHub Desktop.
FP Starting resources
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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