Why Study Programming Languages: Paradigms, Not Syntax
You already know how to program. Probably Ruby, maybe Python, some C from earlier in this path. The natural question this course asks is: why learn another language? If you can al…
Programming Languages and Functional Programming covers: Why Study Programming Languages, Functional Programming Fundamentals, First-Class Functions, Higher-Order Functions, Closures, and the Map/Filter/Reduce Family, Pattern Matching, Algebraic Data Types, and Why They Make Bugs Vanish, The BEAM Lens. Year 1, Quarter 3. Includes 15 exercises and 1 projects.
This course unlocks once you've finished its prerequisite. Open prerequisite →
Complete prerequisites first to enroll.
You already know how to program. Probably Ruby, maybe Python, some C from earlier in this path. The natural question this course asks is: why learn another language? If you can al…
You can write functional-style code in any language. You can also write it better in some languages than others. The three foundations of functional programming — pure functions, …
The previous lesson said you can write iteration as recursion. This lesson says you usually don't have to. Functional languages provide a small family of higher-order functions — …
You've written Ruby that looked like this:
Elixir's secret weapon isn't the language — it's the runtime. BEAM (Bogdan/Björn's Erlang Abstract Machine) is what makes Elixir code able to handle millions of concurrent connect…
- [ ] Hello World — Exercism Elixir — First Elixir module and function - [ ] Bob — Exercism Elixir — Pattern matching on string conditions - [ ] Nucleotide Count — Exercism Elixir…
- [ ] Roman Numerals — Exercism Elixir — Recursive decomposition with pattern matching - [ ] Parallel Letter Frequency — Exercism Elixir — Task.async/await for parallel map - [ ] …
- [ ] Build a Supervisor tree — three GenServers (counter, cache, logger) supervised with :oneforone - [ ] Implement a concurrent web scraper — Task.asyncstream with rate limiting…
- [ ] Build a chat room in Elixir — GenServer for room state, processes for each user, message broadcasting via send/receive, supervision tree for fault tolerance; no Phoenix, jus…
Build a web scraper that fetches multiple pages concurrently using Task.asyncstream. Parse HTML to extract links and titles. Use a GenServer to track visited URLs and prevent revi…
- [ ] What is functional programming? How does it differ from imperative programming? - [ ] What are pure functions? Why does immutability matter? - [ ] Explain pattern matching i…
- [ ] Course 3.1 knowledge check passed - [ ] Course 3.2 knowledge check passed - [ ] Course 3.3 knowledge check passed - [ ] Course 3.4 knowledge check passed - [ ] Route Planner…
12 lessons. Read in order; spiral back when you need to. By the end you'll have used the core ideas twice — once on the abstract, once on something you'll meet at work next week.