getify / Functional-Light-JS

Pragmatic, balanced FP in JavaScript. @FLJSBook on twitter.
http://FLJSBook.com
Other
16.64k stars 1.96k forks source link

Development Edit: Appendixes #69

Closed bmacdonald-editor closed 7 years ago

bmacdonald-editor commented 7 years ago

I don't have a lot to say about the appendixes, so I'm just going to combine them into one issue.

Appendix A: Really strong. The flow here is very clear, even though it's a complicated topic. I can't find anything to suggest on this one. Note, however, that you have one TODO left in there.

Appendix B: I'm going to question the purpose of this appendix being here. Not because I think monads are too complex for this book; they're not. But because I'm not seeing enough information here to allow me to use monads in a practical way. Maybe I'm having trouble getting past the abstract nature, but I don't see a problem in this appendix that monads will help me solve. It's an appendix, and appendixes are optional, so I'm not going to recommend strongly that you cut it, but I would suggest that you make the benefit to the reader more clear in the introduction.

Also, I'm a little fuzzy on what Just() and ap() are supposed to do; I understand that they're abstract concepts, but they seem to have some intended purpose. I get what Nothing() is for, and I assume that Just() is some sort of identity function, or simply returns its value, but that's not stated. I can't figure out from context what ap() is supposed to be for.

Appendix C: This is mostly resources, so not much to say here. However, you provide a list of nine libraries, and discuss three of them in depth. You should probably mention that you're only talking about a few of them in detail, so readers won't think you've left something out.

getify commented 7 years ago

you should probably mention that you're only talking about a few of them in detail, so readers won't think you've left something out.

Quoting appendix C:

We won't cover all of these (as there's a lot of overlap), but here are the ones that should probably be on your radar screen:

getify commented 7 years ago

I would suggest that you make the benefit to the reader more clear in the introduction.

Quoting appendix B:

My only hope for what you get out of this discussion is to not be scared of the term monad or the concept anymore -- I have been, for years! -- and to be able to recognize them when you see them. You might, just maybe, even use them on occasion.

I appreciate the spirit of what you're asking, but I think it's important that we discuss monads but not get too into the weeds with them. I deliberately left it to an appendix because, as you point out, it wouldn't have held its own weight just as a chapter. It's more like a blog post. It's not designed to fully teach the subject, but to familiarize the reader more with it so it's not as intimidating.

getify commented 7 years ago

Also, I'm a little fuzzy on what Just() and ap() are supposed to do

I'm glad you pointed out that I wasn't clearly explaining these. I've done a fair bit of refactoring to the appendix now to try and bring those details out more clearly.