Skip to content
Permalink
Browse files

preparing book for first edition release

  • Loading branch information...
getify committed Nov 26, 2017
1 parent 5714fbe commit 5d16fcbcd8ba59f4efabeace56c57345212ab28b
@@ -6,24 +6,18 @@ However, if you choose to contribute content (not just typo corrections) to this

## Search First!

If you have any questions or concerns, please make sure to search the issues (both open and closed!) first, to keep the churn of issues to a minimum. I want to keep my focus on writing the book as much as possible.
If you have any questions or concerns, please make sure to search the issues (both open and closed!) first, to keep the churn of issues to a minimum. I want to keep my focus on improving the content as much as possible.

## Typos?

This book will go through official editing eventually, and typos will likely all be caught at that stage. As such, **typos are not a big concern of mine for now**.
This book has already been edited. Most typos have already been caught and fixed, but there might still be some mistakes here and there.

If you're going to submit a PR for typo fixes, please be measured in doing so by collecting several small changes into a single PR (in separate commits). Or, **just don't even worry about them for now,** because we'll get to them later. I promise.
If you're going to submit a PR for typo fixes, please be measured in doing, perhaps by collecting several small changes into a single PR (in separate commits).

## Reading Experience (Chapter/Section links, etc)

I understand that reading one long .md file, with no relative cross links to other sections/etc, is not the preferred reading experience for most of you. As such, it's totally reasonable to want to file an issue/PR to add those kinds of features.
This repo **is not optimized for your reading experience.** It's optimized for the publishing process.

This topic has been brought up many times, and I've considered it. For now, I **do not** accept these kinds of changes into the repo.
The primary intended reading experience -- likely the most pleasant one for many of you! -- is the ebook, [which is now on sale](https://leanpub.com/fljs). The balance I'm striking here is releasing the content for free, but selling the reading experience. Other authors make different decisions on that balance, but that's what I've come to for now.

The main purpose of my book repos is to track and manage the content for the purposes of publication (paid-for ebooks and print books). I do this in the open because I also care about providing free and early access to the content, to make sure there is no paywall barrier to learning.

As such, this repo **is not optimized for your reading experience.** It's optimized for the publishing process.

The primary intended reading experience -- likely the most pleasant one for many of you! -- is the ebooks or print books, which I (will eventually) sell. The balance I'm striking here is releasing the content for free, but selling the reading experience. Other authors make different decisions on that balance, but that's what I've come to for now.

I hope you continue to enjoy and benefit from the content, and I also hope you value it enough to purchase the best reading experience in the ebook/print form (once available).
I hope you continue to enjoy and benefit from the content, and I also hope you value it enough to purchase the best reading experience in the ebook/print form.
@@ -1 +1 @@
**Yes, I promise I've read the [Contributions Guidelines](https://github.com/getify/Functional-Light-JS/blob/master/CONTRIBUTING.md)**
**Yes, I promise I've read the [Contributions Guidelines](https://github.com/getify/Functional-Light-JS/blob/master/CONTRIBUTING.md)** (please feel free to remove this line -- if you leave this line here, I'm going to assume you didn't actually read it).
@@ -1 +1 @@
**Yes, I promise I've read the [Contributions Guidelines](https://github.com/getify/Functional-Light-JS/blob/master/CONTRIBUTING.md)**
**Yes, I promise I've read the [Contributions Guidelines](https://github.com/getify/Functional-Light-JS/blob/master/CONTRIBUTING.md)** (please feel free to remove this line -- if you leave this line here, I'm going to assume you didn't actually read it).
@@ -1,6 +1,10 @@
# Functional-Light JavaScript (book)
# Functional-Light JavaScript

This book explores the core principles of functional programming (FP) as they are applied to JavaScript. But what makes this book different is that we approach these principles without drowning in all the heavy terminology. We look at a subset of FP foundational concepts that I call "Functional-Light Programming" (FLP) and apply it to JavaScript.
<a href="https://leanpub.com/fljs"><img src="manuscript/images/marketing/book-cover-sd.png" width="25%" align="right" hspace="20"></a>

This book is a balanced, pragramtic look at FP in JavaScript. The first edition is now complete.

"Functional-Light JavaScript" explores the core principles of functional programming (FP) as they are applied to JavaScript. But what makes this book different is that we approach these principles without drowning in all the heavy terminology. We look at a subset of FP foundational concepts that I call "Functional-Light Programming" (FLP) and apply it to JavaScript.

**Note:** Despite the word "Light" in the title, I do not consider or recommend this book as a "beginner", "easy", or "intro" book on the topic. This book is rigorous and full of gritty detail; it expects a solid foundation of JS knowledge before diving in. "Light" means limited in scope; instead of being more broad, this book goes much deeper into each topic than you typically find in other FP-JavaScript books.

@@ -10,7 +14,7 @@ That's not to say the terms are meaning*less* or that FPrs are bad for using the

But I want you to be able to apply some of the fundamentals of FP to your JavaScript *now*, because I believe it will help you write better, more *reason*able code.
**To read more about the motivations and perspective behind this book, check out the [Preface](preface.md).**
**To read more about the motivations and perspective behind this book, check out the [Preface](manuscript/preface.md).**

## Book

@@ -35,23 +39,21 @@ But I want you to be able to apply some of the fundamentals of FP to your JavaSc

## Publishing

I'm self-publishing this book, most likely digitally [on Leanpub](https://leanpub.com/fljs/). I'll also be trying to work out an option to sell print book copies, but that part is still uncertain.
This book has been published [and is now available for purchase on Leanpub](https://leanpub.com/fljs/). I'll also be trying to work out an option to sell print book copies, but that part is still uncertain.

If you'd like to contribute financially towards the effort (or any of my other OSS work) aside from purchasing the books, I do have a [patreon](https://www.patreon.com/getify) that I would always appreciate your generosity towards.
If you'd like to contribute financially towards the effort (or any of my other OSS work) aside from purchasing the book, I do have a [patreon](https://www.patreon.com/getify) that I would always appreciate your generosity towards.

<a href="https://www.patreon.com/getify">[![patreon.png](https://s11.postimg.org/axpzguh77/patreon.png)](https://www.patreon.com/getify)</a>

## In-person Training

The content for this book derives heavily from a training workshop I teach professionally (in both public and private-corporate workshop format) of the same name.

If you like this content and would like to contact me regarding conducting training on this, or other various JS/HTML5/Node.js topics, please reach out to me through any of these channels listed here:

[http://getify.me](http://getify.me)
If you like this content and would like to contact me regarding conducting training on this, or other various JS/HTML5/Node.js topics, please reach out to me through email: getify @ gmail

## Online Video Training

I also have several JS training courses available in on-demand video format. I teach courses through [Frontend Masters](https://FrontendMasters.com), like my [Functional-Lite JS](https://frontendmasters.com/courses/functional-js-lite/) workshop. Some of those courses are also available on [PluralSight](https://www.pluralsight.com/search?q=kyle%20simpson&categories=all).
I also have several JS training courses available in on-demand video format. I [teach courses](https://FrontendMasters.com/teachers/kyle-simpson) through [Frontend Masters](https://FrontendMasters.com), like my [Functional-Light JavaScript v2](https://frontendmasters.com/courses/functional-javascript-v2/) workshop. Some of my courses are also available on [PluralSight](https://www.pluralsight.com/search?q=kyle%20simpson&categories=all).

## Contributions

Binary file not shown.
Binary file not shown.
@@ -0,0 +1,17 @@
<svg id="Group_3195" data-name="Group 3195" xmlns="http://www.w3.org/2000/svg" viewBox="-2319 -1292.5 54.294 152.765">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #000;
stroke-width: 2px;
}
</style>
</defs>
<g id="Group_3186" data-name="Group 3186" transform="translate(-2319 -1232.408)">
<path id="Path_5073" data-name="Path 5073" d="M584.719,1176.621c-1.326,1.649-2.9.932-4.374.394a2.355,2.355,0,0,0-2.617.323c-3.621,2.546-8.712,2.4-11.293-.86-.359.5-.717.968-1.255,1.721.108-.681.179-1.076.287-1.613-.825.215-1.578.43-2.33.645,2.474-.9,2.9-3.083,3.657-5.234a39.1,39.1,0,0,1,3.012-5.629c-.466-.5-1.219-1.291-1.864-1.972-1.972,3.514-4.015,7.17-6.059,10.827-.215-.108-.43-.215-.681-.323,4.3-6.453,4.23-14.484,8.1-21.188-.323,3.263-.609,6.525-.932,9.823h3.513c0-3.083.036-6.059-.036-9a1.577,1.577,0,0,0-.932-1.219,4.087,4.087,0,0,1-3.478-3.191,3.111,3.111,0,0,1,1.864-3.621c-.681-1.793-1.291-3.442-1.936-5.091a1.55,1.55,0,0,0,.179-.036l2.9,5.378c-1.111.43-2.51,1.075-2.295,2.94.215,1.721,1.793,2.617,4.661,2.653.143,2.223.251,4.481.394,6.7.072.036.143.036.215.072.394-2.187.789-4.374,1.183-6.633,1.326-.143,3.012,1.542,3.872-.574.681-1.649-.143-2.94-1.362-4.051a1.91,1.91,0,0,0-.359.251c-.753.825-1.4,2.223-2.223,2.366-1.4.251-2.044-1.219-2.295-2.474a24.486,24.486,0,0,1-.574-4.23c-.072-2.725-.036-5.449.072-8.174,1.685,4.015.179,8.676,2.689,12.512-.287-4.266-.574-8.533-.9-13.05-3.8-.43-7.959-.86-12.154-1.326,7.816-.466,15.631-1.685,23.77.86-3.693.358-6.991.645-10.5,1-.5,3.37,1.721,6.346,2.223,10.11,2.4-3.227,1.506-6.489,1.613-9.572.681,3.513,1.506,7.027-.645,10.361,3.191,3.334,3.37,5.808.574,8.461,2.545,7.278,5.127,14.52,7.672,21.8-.108.036-.251.108-.359.143-.143-.143-.323-.251-.466-.394-1.111-2.4-2.223-4.84-3.37-7.242-.609-1.291-1.076-3.155-2.115-3.585-1.076-.43-2.725.538-4.159.9-.036,0-.072.072-.108.108.717,1.4,1.757,2.725,2.079,4.195a7.734,7.734,0,0,0,4.338,5.485A7.23,7.23,0,0,0,584.719,1176.621Zm-10.074-9.752a18.068,18.068,0,0,0-2.761.036,2.306,2.306,0,0,0-1.362,1.111c-.9,1.721-1.542,3.585-2.474,5.27-1.291,2.33-.717,3.657,2.008,3.98a7,7,0,0,0,6.7-2.51C576.043,1172.068,575.361,1169.594,574.644,1166.869Zm4.231-2.9c-.323-3.047-.645-5.916-1-9.178-.538.358-1.291.609-1.362.968-.43,2.546-.681,5.127-1,7.816C576.76,1163.75,577.8,1163.857,578.875,1163.965Z" transform="translate(-547.157 -1103.555)"/>
<path id="Path_5074" data-name="Path 5074" d="M567.883,1057.612c1-2.725,2.295-5.234,4.983-6.812.609.538,1.4.968,1.721,1.578,2.366,4.41,7.636,5.485,10.612,9.178a7.625,7.625,0,0,1,.9,1.793,2.743,2.743,0,0,1-.394.287c.681.358,1.327.717,2.115,1.111-.86,1.291-1.828,2.4-1,4.195.287.574-.789,1.793-1.183,2.617-.072,1.434-.179,2.94-.251,4.625.287.609.753,1.542,1.183,2.474l-.538.43c.143-2.115-1.111-2.223-2.617-2.4-5.951-.753-11.9-1.649-17.854-2.474-1.111-.143-2.259-.108-3.37-.143a19.235,19.235,0,0,1,3.406-.717c5.772-.179,11.58-.323,17.065,2.115a1.653,1.653,0,0,0,1.506-.179,2.672,2.672,0,0,0,.466-1.936c-.287-1.291-1.793-1.972-3.263-1.757a20.907,20.907,0,0,1-5.127.5c-4.3-.43-8.533-1.506-12.907-.86a27.661,27.661,0,0,1,4.8-1.183,47.378,47.378,0,0,1,14.233.394c.932.143,1.972-.43,2.976-.681v-.968a15.072,15.072,0,0,0-3.012-.645c-1.721,0-3.478.538-5.163.287-4.338-.574-8.6-1.4-13.014-.359a8.043,8.043,0,0,1,2.115-.968,26.506,26.506,0,0,1,15.129-.143,2.557,2.557,0,0,0,3.227-1c-2.868-1.972-2.868-1.972-5.951-1.721a10.8,10.8,0,0,1-2.151.072,37.53,37.53,0,0,0-14.663,1.47c6.6-3.693,13.48-5.091,20.937-2.51-.681-2.474-4.876-5.127-7.206-4.768a25.351,25.351,0,0,0-3.693.466,83.178,83.178,0,0,0-8.676,3.083c-.789.323-1.327,1.47-1.757,2.33-.143.323.287.932.466,1.4-.287.717-.609,1.4-.9,2.115l.43.323c.179-.43.359-.86.574-1.291.108.072.251.179.359.251-.5,2.259-1.04,4.517-1.542,6.812h1.47c-.215.323-.43.681-.645,1-1.147-.323-1.4-1-1.147-2.151a6.766,6.766,0,0,0-.179-4.8c-.609-1.255-.215-3.3.394-4.7a9.969,9.969,0,0,1,3.083-3.3,35.508,35.508,0,0,1,4.231-2.51c.287.108.645.323.9.251,2.295-.538,4.589-1.147,6.74-1.721-1-.789-2.187-1.685-3.334-2.546-.179-.179-.359-.358-.538-.573C570.429,1054.529,569.174,1056.07,567.883,1057.612Z" transform="translate(-546.419 -1050.8)"/>
<path id="Path_5075" data-name="Path 5075" d="M567.587,1156.435c2.33,4.23,4.912,8.318,6.884,12.692a19.624,19.624,0,0,1-.681,17.962c-5.7,10.72-14.914,16.528-26.925,17.1-11.688.574-20.758-6.668-23.7-18.033-2.115-8.138-1.434-15.846,3.37-22.945,2.8-4.123,5.2-8.389,5.521-13.552a16.991,16.991,0,0,1,.932-4.159c-.825,5.342-.574,10.9-3.836,15.739-2.51,3.729-4.732,7.816-5.019,12.476-.574,9.537,2.008,18.033,9.572,24.307,5.306,4.41,11.652,5.019,18.141,3.657a29.952,29.952,0,0,0,20.256-14.09,20.183,20.183,0,0,0,1.111-19.682c-1.506-3.3-3.513-6.346-5.306-9.5-.323-.538-.645-1.076-1-1.613C567.121,1156.686,567.372,1156.542,567.587,1156.435Z" transform="translate(-522.03 -1111.548)"/>
</g>
<line id="Line_358" data-name="Line 358" class="cls-1" y1="60" transform="translate(-2291.5 -1292.5)"/>
</svg>
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="212px"
height="237px"
version="1.1"
id="svg4186"
inkscape:version="0.91 r13725"
sodipodi:docname="Copy of book-cover.svg">
<metadata
id="metadata4196">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="640"
inkscape:window-height="480"
id="namedview4194"
showgrid="false"
inkscape:zoom="1.2637131"
inkscape:cx="60.33183"
inkscape:cy="220.34098"
inkscape:current-layer="svg4186"
showborder="false" />
<defs
id="defs4188" />
<g
transform="translate(0.5,0.5)"
id="g4190"
style="fill:#ffdf46;fill-opacity:1;stroke:none">
<path
id="path4192"
style="fill:#ffdf46;stroke:none;stroke-width:2;stroke-miterlimit:10;fill-opacity:1"
d="m 49,1 c 68,3.3333333 103.66667,8.3333333 107,15 3.33333,6.666667 13.33333,28.333333 30,65 16.66667,36.66667 20,65 10,85 -10,20 -28.66667,36.66667 -56,50 -27.33333,13.33333 -52.333333,16.66667 -75,10 C 42.333333,219.33333 26,201 16,171 6,141 9.3333333,112.66667 26,86 42.666667,59.333333 51.025737,33.967446 49.692404,3.9674458 Z"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cssssssscc" />
</g>
</svg>
Binary file not shown.
Binary file not shown.

0 comments on commit 5d16fcb

Please sign in to comment.
You can’t perform that action at this time.