LispInSmallPieces/test
Elf M. Sternberg db2e93b2f3 [refactor] Is this the functor/applicative/monadic life?
This is a big change.  For chapter 5, I ripped out all line/column
tracking and most error handling from the parser; it's now a plain
ol' Lisp parser, and if it's not close to CL 22.1.1, it's a hell of
a lot closer than it used to be.

In doing so, I reduced the size of the parser by about 40 lines.

TrackingReader takes every function in a Reader and puts that
debugging information *back*.  It turns out that all that information
was prelude and postlude to the act of parsing; by wrapping each
function in a decorator I was able to restore all that information,
and I only had to get it right exactly *once*.

In functional programming terms, this lifts:

	IO -> (atom | list)

to:

	IO with tracking -> Node (atom | list) with tracking

It's a totally free win without having to do much extra work.

Now, this check-in isn't perfect.  The tracking reader is still
tossing on some things, and because I don't have a robust type
system (it is Coffeescript, after all), I'm having to do the
decorating and wrapping by hand.  But I'm definitely on my way
to understanding the issues, and having a grasp on functors and
monoids.
2015-08-20 08:50:52 -07:00
..
reader5_samples.coffee [refactor] Is this the functor/applicative/monadic life? 2015-08-20 08:50:52 -07:00
test_chapter-lambda-1.coffee [chore] Lint-picked versions that pass all unit tests. 2015-07-08 15:14:05 -07:00
test_chapter1.coffee [chore] Lint-picked versions that pass all unit tests. 2015-07-08 15:14:05 -07:00
test_chapter3-cont.coffee [refactor] Got throw/catch working with self-evaluating expressions 2015-07-31 07:34:12 -07:00
test_chapter3.coffee [chore] Lint-picked versions that pass all unit tests. 2015-07-08 15:14:05 -07:00
test_chapter3g.coffee [doc] Add many comments to the final interpreter. 2015-08-07 17:09:51 -07:00
test_chapter4.coffee [feat] Chapter 4 is done. 2015-08-16 22:21:10 -07:00
test_reader.coffee [refactor] The great conversion continues. 2015-07-30 07:29:39 -07:00
test_reader5a.coffee [refactor] Is this the functor/applicative/monadic life? 2015-08-20 08:50:52 -07:00
test_reader5b.coffee [refactor] Is this the functor/applicative/monadic life? 2015-08-20 08:50:52 -07:00