sdiehl / write-you-a-haskell

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RSS status?

kach opened this issue · comments

It looks like the RSS feed for this book is incomplete.

The book itself is incomplete.

commented

I think lot of people are eagerly waiting for the book to be more complete.
I really hope you'll find the time to work on it, as many of the topics
you're planning to cover cannot be easily found elsewhere (and in general
are rather deeply embedded in source code rather than being explained in
the way you do)

Maurizio

On Mon, Apr 6, 2015 at 8:47 AM, Stephen Diehl notifications@github.com
wrote:

The book itself is incomplete.


Reply to this email directly or view it on GitHub
#60 (comment)
.

Thanks for the kind words. I do very much intend to finish the book, although I think the timeline might be closer to the end of the year for completion.

Ah, I see, I was confused because the chapters were listed in the index but did not appear on my RSS reader. Sorry for the trouble.

P.S. Your section on Hindley-Milner inference saved me hours of trouble—thank you very much for writing that. In particular, your quick listing of all the notation used was extremely helpful, and I think more books should do this.

One comment, though: your convention for the substitution operation appears to differ from the one used in the book Functional Programming (Field and Harrison, 1989). The order of the arguments, as in [a/b] vs [b/a], is reversed in the book.

One last thing—I found the diagrams in these slides very helpful to understanding the algorithm: http://www.cs.colorado.edu/~bec/courses/csci5535-s09/slides/ML_Type_Inference_and_Unification.pdf Perhaps they may interest you. :-)

My $0.02: The conventional usage in academia is to write new/old, e.g. e1[e2/x]. The intuition behind this is the analogy with division ("Dividing out the x, replacing with e2").

@Hardmath123 @tommythorn I debated this for a while, TAPL also uses the reveres notation. Is there a consensus among the people following this about which is preferable?

To me personally, your convention is more "obvious" because it is reminiscent of sed-style text replacement.

@Hardmath123 That was my reasoning too.

I obviously think you should stay with the convention in the relevant literature, but failing that, maybe instead use a different notation, say e1[x → e2] so there's no ambiguity.

Is there a place to debate/ask questions about the implementation/book? (This obviously isn't, but the issue has already strayed from the original RSS)