Building a modern functional compiler from first principles. (http://dev.stephendiehl.com/fun/)
Go to file
Stephen Diehl ae73485e04 Merge pull request #94 from thomwiggers/master
Use name instead of Var as type for variable names
2017-04-19 19:42:33 +01:00
.github readme 2016-02-18 21:19:27 -05:00
chapter1 initial commit 2015-01-05 02:54:15 -05:00
chapter2 initial commit 2015-01-05 02:54:15 -05:00
chapter3 Merge pull request #65 from sgraf812/master 2017-04-19 19:41:59 +01:00
chapter4 fix names for ski combinators 2016-07-23 18:34:57 -05:00
chapter5 Fixed Type Mismatch message for If. 2016-07-07 11:44:06 -03:00
chapter6 changes to the Evaluation chapter 2015-02-14 16:11:43 +01:00
chapter7 Fix issue #34 2017-01-01 12:32:18 -07:00
chapter8 initial commit 2015-01-05 02:54:15 -05:00
chapter9 Spotted a couple of typos 2017-02-10 18:46:22 -08:00
chapter10 added example generics cases 2015-12-13 17:44:06 -05:00
chapter11 Squashed commit of the following: 2015-01-18 21:04:01 -05:00
chapter12 Squashed commit of the following: 2015-01-18 21:04:01 -05:00
chapter27 Squashed commit of the following: 2015-01-18 21:04:01 -05:00
css rewwork table layouts 2015-12-31 02:28:43 -05:00
img added jit compiler images 2016-01-10 21:47:58 -05:00
js restore nav.js, make js directory 2015-01-06 18:12:50 -05:00
misc update rss 2015-01-24 14:39:48 -05:00
.gitignore added stack support 2015-11-26 19:16:46 -05:00
.travis.yml punt on 7.10 for now 2015-12-11 14:30:18 -05:00
001_basics.md Minor fix for example demonstrating recursion 2016-02-03 17:22:16 +00:00
002_parsers.md Merge pull request #65 from sgraf812/master 2017-04-19 19:41:59 +01:00
003_lambda_calculus.md crosslink chapter10 2015-12-13 18:19:34 -05:00
004_type_systems.md Fixed Type Mismatch message for If. 2016-07-07 11:44:06 -03:00
005_evaluation.md Fix minor typo (stratgies -> strategies) 2016-03-22 00:31:20 -07:00
006_hindley_milner.md Merge pull request #94 from thomwiggers/master 2017-04-19 19:42:33 +01:00
007_path.md 007_path.d: ':core id' returns the value, not the type 2016-06-21 15:49:25 +03:00
008_extended_parser.md Spotted a couple of typos 2017-02-10 18:46:22 -08:00
009_datatypes.md Update 009_datatypes.md 2016-06-20 12:59:14 -07:00
010_renamer.md enable build for chapter 11 2015-12-31 01:29:11 -05:00
011_pattern_matching.md Squashed commit of the following: 2015-01-18 21:04:01 -05:00
012_systemf.md added failure cases for poly 2015-01-28 09:31:19 -05:00
026_llvm.md Wrong image path 2016-01-19 16:12:09 +00:00
000_introduction.md rework tables in introduction 2015-12-31 02:38:45 -05:00
atom.xml update rss 2015-01-24 14:39:48 -05:00
CONTRIBUTORS.md Fix let inferece (attempts to fix #72 and #82). 2016-09-24 22:45:47 -03:00
deploy.sh change prompt characters 2015-12-31 02:00:04 -05:00
includes.hs experiment with epub generation 2015-01-08 20:36:34 -05:00
index.md rework index 2016-01-19 17:59:24 -05:00
latex_macros cleanup pdf warts 2015-01-11 13:52:00 -05:00
LICENSE bump template dates 2016-01-19 18:20:06 -05:00
Makefile enable build for chapter 11 2015-12-31 01:29:11 -05:00
README.md cc image 2016-04-28 09:40:22 -04:00
run-tests.sh don't build pdf on travis 2015-01-18 21:35:35 -05:00
stack.yaml Update resolver to 4.2 2016-01-19 15:04:49 +00:00
template.html page.tmpl -> template.html 2015-01-09 09:04:56 -05:00
template.latex bump template dates 2016-01-19 18:20:06 -05:00
title.md Squashed commit of the following: 2015-01-18 21:04:01 -05:00
write-you-a-haskell.cabal relax bounds on base 2016-01-19 15:06:35 +00:00


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.