sdiehl/write-you-a-haskell

Building a modern functional compiler from first principles. (http://dev.stephendiehl.com/fun/)

3,484

stars

291

commits

Haskell

primary language

Jan 11, 2021

updated

book
compiler
evaluation
functional-language
functional-programming
haskel
hindley-milner
intermediate-representation
lambda-calculus
pdf-book
type
type-checking
type-inference
type-system
type-theory

README


Building a modern functional compiler from first principles.

Stephen Diehl

Build Status Gitter MIT License

Read Online:

Releases

This is a work in progress.

Building

To generate the build scripts provision a cabal sandbox with pandoc in it. This is done by the write-you-a-haskell.cabal and stack.yaml files.

Stack

$ stack exec make

To generate the pdf, the LaTeX packages must be installed on the system.

$ sudo apt-get install texlive-xetex texlive-latex-extra
$ sudo apt-get install xzdec
$ sudo tlmgr install zapfding
$ stack exec make pdf

Generation of the epub is also supported.

$ stack exec make epub

Cabal

$ cabal sandbox init
$ cabal install --only-dependencies
$ cabal exec bash
$ make

Contributing

Any and all contributions are always welcome. As always, I rely on the perpetual kindness and goodwill of Haskellers (like you!) to help correct grammar, clarify, and fix errors.

License

Artwork CC BY NC SA

This written work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. You may reproduce and edit this work with attribution for all non-commercial purposes.

The included source is released under the terms of the MIT License.

Contributors

(top 30 of 31)

sdiehl

202 commits

chsievers

34 commits

mpickering

10 commits

mseri

5 commits

sdiehl/write-you-a-haskell

Building a modern functional compiler from first principles. (http://dev.stephendiehl.com/fun/)

3,484

stars

291

commits

Haskell

primary language

Jan 11, 2021

updated

book
compiler
evaluation
functional-language
functional-programming
haskel
hindley-milner
intermediate-representation
lambda-calculus
pdf-book
type
type-checking
type-inference
type-system
type-theory

README


Building a modern functional compiler from first principles.

Stephen Diehl

Build Status Gitter MIT License

Read Online:

Releases

This is a work in progress.

Building

To generate the build scripts provision a cabal sandbox with pandoc in it. This is done by the write-you-a-haskell.cabal and stack.yaml files.

Stack

$ stack exec make

To generate the pdf, the LaTeX packages must be installed on the system.

$ sudo apt-get install texlive-xetex texlive-latex-extra
$ sudo apt-get install xzdec
$ sudo tlmgr install zapfding
$ stack exec make pdf

Generation of the epub is also supported.

$ stack exec make epub

Cabal

$ cabal sandbox init
$ cabal install --only-dependencies
$ cabal exec bash
$ make

Contributing

Any and all contributions are always welcome. As always, I rely on the perpetual kindness and goodwill of Haskellers (like you!) to help correct grammar, clarify, and fix errors.

License

Artwork CC BY NC SA

This written work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. You may reproduce and edit this work with attribution for all non-commercial purposes.

The included source is released under the terms of the MIT License.

Contributors

(top 30 of 31)

sdiehl

202 commits

chsievers

34 commits

mpickering

10 commits

mseri

5 commits

Languages

Haskell

81.1%

CSS

4.7%

OCaml

2.9%

Python

1.7%

JavaScript

1.7%

Yacc

1.4%

C++

1.4%

Logos

1.2%

HTML

1.2%

Makefile

1.1%