Skip to content
Jupyter adaptation of Learn You a Haskell for Great Good!
Branch: master
Clone or download
Latest commit 1de928b Jul 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
notebook markdown icons Jul 19, 2019
.gitignore move files to root Jun 28, 2019
Dockerfile ihaskell-notebook JupyterLab 1.0 Jul 17, 2019
LICENSE license and thanks Jun 28, 2019
README.md README polish Jun 30, 2019

README.md

Learn You a Haskell for Great Good!

Launch and read right now with this binder link: launch Learn You a Haskell for Great Good!

cover

This is a Jupyter notebook adaptation of the book Learn You a Haskell for Great Good! by Miran Lipovača.

I learned Haskell from this book in 2014 by following along in GHCI, as the book suggested.

In 2019, the Jupyter notebook format would be a nice way read this book. This is one of the best cases for Theodore Gray's idea of the computational essay, and Andrew Gibiansky has made it possible with IHaskell.

Each chapter of the book is one .ipynb Jupyter notebook file. See the list of chapter files on the left sidebar in JupyterLab.

Each notebook cell depends on cells that come before it, so run the notebooks from top to bottom. I have refactored code to make the examples work in Jupyter, and removed instructions for how to use GHCI. Other than that I have tried to be faithful to the original text.

Miran Lipovača wrote this book and released it to the world under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License, which means that the book is free-as-in-speech, and allows us to enjoy the book in notebook format. But that does not mean that the book is free-as-in-beer; it means that you, dear reader, pay for the book under the honor system. If you are honorable and you want to keep living in a world in which honorable artists license their art as Creative Commons, then buy the book.

Thanks also to Paul Vorbach for https://github.com/pvorb/learn-you-a-haskell.

How to run locally

git clone https://github.com/jamesdbrock/learn-you-a-haskell-notebook.git
cd learn-you-a-haskell-notebook
docker run --rm \
      -p 8888:8888 \
      -v $PWD/notebook:/home/jovyan/work \
      --env JUPYTER_ENABLE_LAB=yes \
      --env JUPYTER_TOKEN=x \
      --name learn-you-a-haskell \
      crosscompass/ihaskell-notebook:latest

http://localhost:8888?token=x

How to edit notebooks

If you make an improvement to a notebook and you want to commit the changes, then

  1. Maximize the browser window to full screen width, because cell horizontal scroll bar visibility gets saved in the notebook.

  2. Run -> Restart kernel and Run All Cells...

  3. Save the notebook.

You can’t perform that action at this time.