For questions and help doing exercises, we have a subreddit for asking questions where both authors and fellow readers can contribute and discuss freely. We like having this option because the threads persist so others can find them, but we'd prefer if people refrained where possible from directly posting solutions to problems. The Freenode IRC channel at #haskell-beginners is also excellent, and the Haskellers there are friendly and glad to help.
If you think we haven't given you enough information to complete an exercise or there is a typo or some broken code, please contact us directly so we can decide if something needs to be fixed.
None at all, and the PDF is aggressively standards compliant so that the e-reader formatted variant works nicely on Kindle and other e-ink devices.
The short answer is: we hope so; we're working on it.
The slightly longer answer is that it didn't make sense to worry about that too much while the majority of the book wasn't written yet. We've been churning and adding new material quickly, and to maintain that speed, we had to delay giving serious thought to printing. That said, we hope to make it happen. We do have our early access buyers in mind and will offer them discount codes for the print book when it is available if the publisher/printer allows it.
EPUB doesn't let us set a minimum length. EPUB also doesn't have line-folding glyphs. We are unlikely to release an EPUB or MOBI until they offer some way to deal with this problem.
What big tech publishers do to get around this problem is embed low resolution jpegs of the source code in their EPUBs. This is a terrible solution and we will not put something out that does this.
There's an e-reader formatted PDF which, on the 4 or 5 different Kindle models we've tested or seen it on, works great. No scrolling, no zooming in and out. Just works. Page turn your way through. For now, we're not going to release an EPUB.
This book is quite comprehensive. It starts from the absolute basics and takes you through the ability to read and understand industrial Haskell and use some wonderful libraries.
Between the two of us, we have decades of experience teaching and programming, and we have been careful about pedagogy. You may find that much of the knowledge contained in the book is available somewhere on the internet for free. We have used our expertise to find those scattered tidbits of knowledge and wisdom, check them for accuracy, organize them, add a bunch of exercises and examples to help you gain experience using Haskell, test it with reviewers (both experts and beginners), and revise and tweak until it makes sense and works for as many people as possible.
Chris's programming experience and Julie's logic and linguistics background mean that some things in the book are things we figured out for ourselves. Some we found out by picking some wizard's brain in private. Only you can decide if it's worth it to you to pay for the work we've done or if you'd rather sift through all the free resources and try to devise examples and exercises for yourself.
The final release is over 1,000 pages of moderate density. To see the scope of the book, check out the full listing and chapter descriptions.
See our post on this. The long and short of it is that we'd rather equip you to learn anything you want rather than teach you a particular library or framework.
If you get an error like the following on Mac OS X:
$ cabal build Building hello-haskell-0.1.0.0... Preprocessing executable 'hello-haskell' for hello-haskell-0.1.0.0... Linking dist/build/hello-haskell/hello-haskell ... couldn't understand kern.osversion `14.5.0' couldn't understand kern.osversion `14.5.0' ld: -rpath can only be used when targeting Mac OS X 10.5 or later collect2: ld returned 1 exit status
Then you have a very old version of gcc, probably also of XCode. Uninstall whatever you currently have and reinstall a recent version of XCode. Alternately, you may be able to get a friendly version of GHC via Homebrew.
We recommend you use Stack whether you're using Windows, Mac, or Linux!. We've made a Youtube tutorial video for learning to use Stack.
The final release version of the book is compatible with GHC 8. Most of the interesting changes coming in GHC 8 are out of the scope of the book; however, we have included some brief introduction to one or two of the new features.
There are some answers already included in the book. There will be more as we have time to write them. There will never be answers provided to all the exercises, though. We've been very careful about providing answers because we want to discourage you from thinking that what you did was wrong if it doesn't precisely match the way we wrote it. We'd rather that you gain experience working with and trusting GHCi than try to check your work against ours as a first recourse. We are working on ensuring that where we've asked you to write a function or a typeclass instance, we've given you an idea of the expected output or behavior so you have a way to check yourself before you wreck yourself.
Several readers have posted their answers publicly, though, so you can search for those.
We're working on indexing as well. We know it's frustrating not to have an index, but it's coming.
The chapters that include project building, starting with modules and projects, use Stack now. There are still things you need to know about Cabal, but we use Stack as our primary project management tool now.