An open API service indexing awesome lists of open source software.

https://github.com/askewcow/haskell-by-doing

A hands-on journey to learning Haskell by building projects, exercises, and notes. Perfect for people from all backgrounds!
https://github.com/askewcow/haskell-by-doing

best-way-to-learn-haskell coding-exercises fp functional-paradigm functional-programming functional-programming-exercises haskell haskell-beginner haskell-course haskell-course-github haskell-exercises haskell-fundamentals haskell-learning haskell-projects-github haskell-tutorial learn-functional-programming learn-haskell programming-exercises

Last synced: 13 days ago
JSON representation

A hands-on journey to learning Haskell by building projects, exercises, and notes. Perfect for people from all backgrounds!

Awesome Lists containing this project

README

          

# 🐏 Learn Haskell - A GitHub-Driven Learning Course

Welcome to the **Haskell by Doing** course! This is a modern, GitHub-optimized path to mastering Haskell, designed to grow your skills **and** your profile ⭐.

Whether you're just starting out or brushing up, this course will walk you through functional programming concepts using a structured, visual, and hands-on approach.

---

## ✨ Why This Course?

- βœ… Beginner-friendly explanations
- πŸ” Real-world code examples
- πŸ” Step-by-step challenges
- 🌱 Build incrementally- one concept at a time
- 🌐 Grow your GitHub with visible progress

---


# 🧠 How This Course Works

## 1. πŸ“– Learn a Concept

- Short, clear explanations
- πŸ’‘ Minimal but focused code examples
- 🎨 Visuals and edge cases explained

## 2. πŸ‹οΈβ€β™‚οΈ Try It Yourself

- Solve challenges in each lesson folder
- ⬆️ Push your work to GitHub
- πŸ“ Add notes on what confused you

## 3. 🧩 Level Up Over Time

- Each module builds on the last
- 🧠 Develop intuition, not just syntax

## 4. πŸ—’οΈ Document What You Learn

- Use the built-in note system (or create your own)
- 🚩 Keep track of mistakes, gotchas, and "aha" moments


---


# πŸ“ Reading Notes and Lessons in VS Code

All lessons and notes use **Markdown (`.md`) files** for a clean, readable experience in VS Code.

> πŸ’‘ **Tip:**
>
> - Right-click any `.md` file (like `README.md`, `01-Fundamentals.md`, etc.) and choose **β€œOpen Preview”**
> - Or use the shortcut:
> - **Mac:** `Cmd + Shift + V`
> - **Windows/Linux:** `Ctrl + Shift + V`

This opens a styled, easy-to-read view, perfect for:

| πŸ“š What? | πŸ“ File(s) |
| --------------------- | --------------- |
| Lecture explanations | `/content/*.md` |
| Your personal notes | `/notes/*.md` |
| Exercise walkthroughs | lesson folders |

You can also **split the editor** and open the preview side-by-side with the text for even better workflow!


---


# βš™οΈ Getting Set Up

### πŸ“¦ Step 1: Install GHC, Cabal & Stack

**Install via [GHCup](https://www.haskell.org/ghcup/):**

```bash
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
```

This will install:

- `ghc` β†’ The Haskell compiler
- `cabal` β†’ Standard Haskell build tool
- `stack` β†’ Optional alternative build tool (you may not need it, but it's good to have)

After installation, **restart your terminal**, then check your install:

```bash
ghc --version
cabal --version
stack --version # optional
```

βœ… If you see version numbers, your installation is successful.

---

### πŸ’» Step 2: Install VS Code + Extensions

Download [Visual Studio Code](https://code.visualstudio.com/) if you don’t have it.

**Recommended Extensions:**

| Extension | Publisher | Why |
| ------------------------------ | ----------- | ------------------------------------------------------------------- |
| 🟣 Haskell | Haskell | Full support: errors, warnings, type hints, go-to-definition (HLS). |
| 🎨 Haskell Syntax Highlighting | Justus Adam | Adds proper syntax coloring for `.hs` files. |

#### ⚠️ What you don't need:

- Live Server or Code Runner β†’ Not needed for Haskell
- Old/unmaintained Haskell extensions β†’ stick to the two above


After installing the Haskell extension, VS Code will prompt you to install **Haskell Language Server (HLS)** if it isn’t already set up.
πŸ‘‰ Accept that prompt.

With both extensions installed, you’ll get syntax highlighting + smart Haskell editing.

---

### βœ… Step 3: Clone the Course Repo

The course is pre-structured, i.e. you don’t need to create a new project. Just clone and open it:

```bash
git clone https://github.com/AskewCow/haskell-by-doing
cd haskell-course
code . # Opens folder in vsc
```

You’re ready to go! πŸŽ‰ Start with `01-Fundamentals/content`

---

### πŸ§ͺ Optional: Test That VS Code Works

Open any `.hs` file in VS Code and make sure you see:

- Autocompletion
- Type info when hovering over expressions
- Inline error messages (if something’s wrong)
- Haskell-specific color syntax

If all of those are working, then HLS is active and everything is set up properly.


---

# πŸš€ Ready to Start Your Haskell Journey?



**You're all set!** πŸŽ‰ Dive into the lessons, experiment, and don't forget to jot down your discoveries and mistakes in your notes.

Star this repo



GitHub stars


**Happy Haskell-ing!** 🐏✨