Now uses a Reader monad
[advent-of-code-19.git] / README.md
index aa3689e9ac689ab55ba05a026a538e023830f838..1c6a5d4af3b3be64c8e9a9c71ede59bac3fc73d3 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,9 +1,9 @@
 ---
-title: "Advent of Code 2018"
+title: "Advent of Code 2019"
 output: html_document
 css: modest.css
 ---
-Code to solve the [Advent of Code](http://adventofcode.com/2019/) puzzles. This year, I'm using the puzzles to develop my skills in [Haskell](https://wiki.haskell.org/Haskell).
+Code to solve the [Advent of Code](http://adventofcode.com/2019/) puzzles. This year, I'm using the puzzles to develop my skills in [Haskell](https://wiki.haskell.org/Haskell). I'm writing up a [commentary on these puzzles and my solutions](https://work.njae.me.uk/tag/advent-of-code/) on my blog.
 
 [Learn you a Haskell](http://learnyouahaskell.com/chapters), [Introduction to Haskell 98](https://www.haskell.org/tutorial/index.html), and [Hackage](https://hackage.haskell.org/) are good resources.
 
@@ -20,12 +20,11 @@ $ sudo aptitude install haskell-platform haskell-stack
  stack upgrade --binary-only
 ```
 as the version in the Ubuntu repos is too old to work with current Haskell Stack package sets.
-## 
 
 ## Creating the repository and project
 Create the repository as normal: create the project in Gitolite, clone it, and insert the `.gitignore` and `README.md` files.
 
-There's just one package, with the code in sub-directories of the `src` directory. Each day will generate one (or more) entries in the `adventofcode17.cabal` file.
+There's one package per day, with the code for each package in sub-directories of the root directory. 
 
 Create the basic `stack` project. This will create a new directory. Note that this new directory name can't have a hyphen-delimited word that's just digits, so the project will have to be `advent-of-code`
 
@@ -37,7 +36,7 @@ Modify the `stack.yaml` file as needed, such as adding the `ghc-options` stanza.
 
 ## Creating subsequent days
 
-Each day lives in a separate directory within the `src` directory. It will also need it's own stanza in `advent-of-code.cabal`.
+Each day lives in a separate directory, with its own `package.yaml` file and code in the `src` directory. (I based this configuration from [mstksg's setup](https://github.com/mstksg/advent-of-code-2018).)
 
 Compile with
 ```
@@ -60,16 +59,21 @@ stack exec -- advent01 +RTS -K0 -RTS
 
 Run interactively with
 ```
-stack ghci advent-of-code:exe:advent01
+stack ghci advent01
 ```
+or 
+```
+stack ghci advent01:exe:advent01
+```
+if the first form is ambiguous. 
 
 To profile, use 
 ```
-stack build --executable-profiling --library-profiling --ghc-options="-fprof-auto -rtsopts"
+stack build --executable-profiling --library-profiling --ghc-options="-fprof-auto -rtsopts" advent01
 ```
 then run with
 ```
-stack exec -- advent01 +RTS -p -hy
+stack exec --profile -- advent01 +RTS -p -hy
 ```
 Generate the profile graph with
 ```
@@ -91,16 +95,6 @@ stack solver --update-yaml
 ```
 to implement the changes.
 
-# IHaskell
-
-Install following the [IHaskell instructions](https://github.com/gibiansky/IHaskell).
-
-Run it with
-
-```
-stack exec jupyter -- notebook
-```
-
 # Readme
 
 Build this readme file wth