Giter VIP home page Giter VIP logo

learn-you-a-haskell-notebook's Introduction

Learn You a Haskell for Great Good!

Read the book right now on mybinder.org with this link: launch Learn You a Haskell for Great Good!


Screenshot

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 on your local computer:

Clone this repository with git and cd into the cloned directory

git clone https://github.com/jamesdbrock/learn-you-a-haskell-notebook.git
cd learn-you-a-haskell-notebook

then run this docker command in a shell

docker run --rm -p 8888:8888 -v $PWD/notebook:/home/jovyan/work --name learn-you-a-haskell crosscompass/ihaskell-notebook:latest jupyter lab --LabApp.token=''

then open http://localhost:8888 to read the book.

For podman, try

podman run --privileged --userns=keep-id --rm -p 8888:8888 -v $PWD/notebook:/home/jovyan/work --name learn-you-a-haskell crosscompass/ihaskell-notebook:latest jupyter lab --LabApp.token=''

How to edit notebooks

If you make an improvement to a notebook .ipynb file and you want to save the file and commit the changes and make a pull request to the repository,

  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.

ihaskell-notebook

For more information about the IHaskell Docker image, see https://github.com/jamesdbrock/ihaskell-notebook

learn-you-a-haskell-notebook's People

Contributors

jamesdbrock avatar sblack4 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.