(def food-journal
[{:month 1 :day 1 :human 5.3 :critter 2.3}
{:month 1 :day 2 :human 5.1 :critter 2.0}
diff --git a/ERRATA.md b/ERRATA.md new file mode 100644 index 00000000..e1f6f0ce --- /dev/null +++ b/ERRATA.md @@ -0,0 +1,26 @@ +https://github.com/flyingmachine/brave-clojure-web/pull/125/commits +"carat" should be "caret" + +https://github.com/flyingmachine/brave-clojure-web/pull/124/files + + +https://github.com/flyingmachine/brave-clojure-web/pull/94/files +remove "@" in front of butter-promise + +https://github.com/flyingmachine/brave-clojure-web/pull/120/files +feelings should be feelings-about + +https://github.com/flyingmachine/brave-clojure-web/pull/119/files +feelings should be feelings-about + +https://github.com/flyingmachine/brave-clojure-web/pull/71/files +parthensis + +https://github.com/flyingmachine/brave-clojure-web/pull/101/files +small typo + +https://github.com/flyingmachine/brave-clojure-web/pull/88/files +typos + +https://github.com/flyingmachine/brave-clojure-web/pull/81 +core fucntions fix diff --git a/README.md b/README.md index 2d2197b8..5bec069e 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,12 @@ Pull requests [Clojure for the Brave and True](http://www.braveclojure.com) are very -much welcome! I'll use them as errata reports. +much welcome! I'll use them as errata reports. Please keep in mind +that the HTML was generated by Adobe InDesign or some such, so it's +pretty crappy - and that's OK. I'm not concerned with that; I *am* +concerned with inaccuracies in the content. -All the textual content's under `/content`. +All the textual content's under `/content/cftbat`. After installing ruby and bundler, build with diff --git a/content/cftbat/appendix-a.html b/content/cftbat/appendix-a.html index f0518172..966e9190 100644 --- a/content/cftbat/appendix-a.html +++ b/content/cftbat/appendix-a.html @@ -8,8 +8,7 @@
Writing software in any language involves generating artifacts, which are executable files or library packages that are meant to be deployed or shared. It also involves managing dependent artifacts, also called dependencies, by ensuring that they’re loaded into the project you’re
-building. The most popular tool among Clojurists for managing artifacts is Leiningen, and this appendix will show you how to use it. You’ll also learn how to use Leiningen to totally enhancify your development experience with plug-ins.
+Writing software in any language involves generating artifacts, which are executable files or library packages that are meant to be deployed or shared. It also involves managing dependent artifacts, also called dependencies, by ensuring that they’re loaded into the project you’re building. The most popular tool among Clojurists for managing artifacts is Leiningen, and this appendix will show you how to use it. You’ll also learn how to use Leiningen to totally enhancify your development experience with plug-ins.
Because Clojure is hosted on the Java Virtual Machine ( JVM), Clojure artifacts are distributed as JAR files (covered in Chapter 12). Java land already has an entire artifact ecosystem for handling JAR files, and Clojure uses it. Artifact ecosystem isn’t an official programming term; I use it to refer to the suite of tools, resources, and conventions used to identify and distribute artifacts. Java’s ecosystem grew up around the Maven build tool, and because Clojure uses this ecosystem, you’ll often see references to Maven. Maven is a huge tool that can perform all kinds of wacky project management tasks. Thankfully, you don’t need to get your PhD in Mavenology to be an effective Clojurist. The only feature you need to know is that Maven specifies a pattern for identifying artifacts that Clojure projects adhere to, and it also specifies how to host these artifacts in Maven repositories, which are just servers that store artifacts for distribution.
Their cousins take-while
and drop-while
are a bit more interesting. Each takes a predicate function (a function whose return value is evaluated for truth or falsity) to determine when it should stop taking or dropping. Suppose, for example, that you had a vector representing entries in your “food” journal. Each entry has the year, month, day, and what you ate. To preserve space, we’ll only include a few entries:
Their cousins take-while
and drop-while
are a bit more interesting. Each takes a predicate function (a function whose return value is evaluated for truth or falsity) to determine when it should stop taking or dropping. Suppose, for example, that you had a vector representing entries in your “food” journal. Each entry has the month and day, along with what you ate. To preserve space, we’ll only include a few entries:
(def food-journal
[{:month 1 :day 1 :human 5.3 :critter 2.3}
{:month 1 :day 2 :human 5.1 :critter 2.0}