-
Notifications
You must be signed in to change notification settings - Fork 192
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve ordering of content #340
Comments
I just found this case right here. I was reviewing the solutions that were made to compare to my solutions, and did not expected a pattern matching solution that only appears on the next chapter. Worth mentioning that my solution did not use pattern matching, of course. (duplicated #303) |
I did a pass through the issues collecting all the suggestions and through code gathering the topics. TLDR. I don’t think we need to redo or move a lot of stuff around. I propose a few swaps (for example, swap chapters 4 and 5) and then extend content based on the existing (or future) issues and confusions. Additionally, I’d like to break (some) chapters into subchapters to make it easier to navigate and digest. (see Rust book
ContextCurrent topics
Current/open issues
|
Some of the book's content is presented in a non-ideal sequence which frustrates beginners in the following ways:
Maybe
before ADTs,Unit
with no explanation,do
notation andpure
without discussingbind
and related typeclasses).One simple improvement is to cover pattern matching (ch5) before recursion (ch4) (highlighted in #303). We should also cover ADTs (and
Maybe
) beforedo
notation (proposed in #212).But I think the book would really benefit from a more systematic restructuring where we do something like the following:
We could also push more of these topic explanations to other language reference locations (e.g. docs repo and library docs), then link to those from the book. That way, the book will serve more as a guide on learning sequence with accompanying exercises to avoid duplicating content.
I think there would also be value of distinguishing a minimum set of "core" concepts that all users must know (e.g. functions, ADTs, typeclasses, etc. - noted in https://discourse.purescript.org/t/guide-to-learn-purescript/2308/4) from the supplemental topics (e.g. generative testing, canvas graphics). This could be noted in the book's introduction.
The text was updated successfully, but these errors were encountered: