My goal in writing this book was to give an introduction to new programmers, with functional style as the default and without reference to prior knowledge of an imperative language I wanted an interactive book where readers could try things out. Since ClojureScript is a good vehicle for functional programming and is self-hosted, it seemed to be a good choice.
Thanks. I'm not serving the content from a Runestone server, but a lot of the links for its features (report problems, the "save" and "load" in activecode) appear to remain active.
[Edit] The red outline indicates that the text in the active code has changed but has not been saved.
There are a lack of resources out there for things like this. Especially with functional programming. This is very well done explaining the fundamentals of FP along with having people actually write code that ends up showing them something. Too many approaches go one way or the other.
Most FP stuff these days is trying to convert imperative programming users with corollaries to it. Actually new programmers do not have as much of a problem grasping FP as people think. The Clojure Bridge people have said as much in their experience training beginners.
I'll second this. Clojure was my first language, and I think I've been spoiled. Learning mutable programming was a lot harder for me, especially when you add the object oriented paradigm to it. I think a lot of people who learned it that way first underestimate how much complexity they had to master in order to be productive.
Very cool. I'm happy you're doing this. Greetings from #clojurewest by the way! Yo, I have not gone through all the pages yet, but I'm hoping you jump to map/filter/reduce and show how they are the intelligent and amazing alternative (replacement?) to for-loops and the like. A non-obvious bit of knowledge that is vital to FP.
I do discuss map/filter/reduce, but not in comparison to for-loops, as the book presumes that FP is the only thing there is (analogous to how imperative language books don't mention they are great replacements for assembly language). I just realized today that I don’t have anything about list comprehensions, and I may want to add a page on that topic.