Lisp Koans by Google
github.com
github.com
(Yes, there are other projects on github in non-approved languages, but they appear mostly to allow 3rd party interop with google services. The educational nature of this project puts it in a slightly different category.)
The only reason it's part of the Google org is so that they didn't have to pay for a private project for staging.
Normally, in situations like this, they are supposed to have a disclaimer in the README that points out it's not official google anything (to avoid exactly the confusion that seems to have occurred here).
edit: See previous comments from DannyBee and cdibona here: https://news.ycombinator.com/item?id=4051325
I actually want to simply eliminate the copyright notices since they are legally pointless, but any time we've done it at scale it just generates lots of questions about ownership, even with clear info in README files, etc.
Then I would go with SCIP and then Koans.
I am treating lisps as a kind of mind game (I dont like crosswords :) so I do Lisp) since I cannot use it for everyday job so from my point of view Scheme and Lisp are not very different. There is different approach to things like mutable state and other more advanced concepts, but basics are the same.
If you want to have at least an illusion of learning Lisp that can catch up one day, learn Clojure. Or go with Scheme's ugly duckling son - JavaScript. :)
SICP [2nd edition] is flat out just a more readable book than HtDP [first print edition, second edition is not in print but looks to be significantly improved].
As textbooks, it may be a bit of a different story, the tone of SICP is certainly cockier. There's less acknowledgement that mathematics is just domain knowledge within the context of an introductory "computer science" course. Then again, HtDP had two decades of experience with SICP upon which to draw. It also has the practical advantage of assuming that students had high levels of access to computers capable of running Lisp. That wasn't the case in the late 1970's and early 80's (or even the late 80's and mid 90's).
The problem with Scheme is not the language, the problem is that the ecosystem is so hopelessly balkanized, that it is useless for practical purposes and nobody uses it for anything interesting except for teaching of SICP. You have tiny standards covering only base language constructs, and everything else is left to implementations of which 1001 different one exists and each implements the same stuff in a different, incompatible way, so there is no code portability. So an large number of Scheme users, instead of developing interesting and useful _new_ libraries, instead rewrite 1001 different implementations and 1001 different manuals covering the same area. If you write something and tell me you wrote it in Scheme, the first thing I'd have to ask is "Which one?" because your code will not run on the 1000 remaining ones. The scheme ecosystem is the prime example of code non-reuse, of the NIH syndrome and waste of man-decades of effort, so while the language itself is nice for teaching, the existing worst-practices are examples of what _not_ to do.
On 'dialects of Lisp': it used to be standard for very different Lisp-family languages to be called that, while nowadays someone will always contradict you if you do. It seems more of a social change than a technical one to me. (I first noticed it among Common Lispers after the AI winter.)
I know someone impressive doing real work with Scheme (though I recommended they try Lua). I don't know whether you're right about the Scheme ecosystem, as I've been elsewhere the last 15 years.
While the above was quoted from the Ruby koans, I would have thought a Lisp author would have corrected the unbalanced parentheses. Am I unusual in finding unbalanced parentheses in English text very distracting? It must be something like my borderline OCD.
* https://github.com/functional-koans/clojure-koans
* https://github.com/HaskVan/HaskellKoans
* https://github.com/rubbish/scala-koans
Other interpreted language koans:
* https://github.com/bittersweetryan/ColdFusion-Koans
* https://github.com/matyb/java-koans
* https://github.com/liammclennan/JavaScript-Koans
* https://github.com/midpeter444/mybatis-koans (In Java, but for the library MyBatis 3)
* https://github.com/kikito/lua_missions
* https://github.com/forcedotcom/PerlKoans
* https://github.com/TorontoPHPSoftwareCraftsmanship/PHPUnit-K...
* https://github.com/gregmalcolm/python_koans
* https://github.com/DASpringate/Rkoans
* https://github.com/neo/ruby_koans
* https://github.com/brysztofor/koans (Ruby on Rails koans)
Other language koans:
* https://github.com/marcinbunsch/bash_koans
* https://github.com/paytonrules/PointerKoan (C pointers)
* https://github.com/CoryFoy/DotNetKoans
* https://github.com/torbjoernk/CppKoans
* https://github.com/liammclennan/coffeescript-koans
* https://github.com/patrickgombert/erlang-koans
* https://github.com/VictorDenisov/go_koans
* https://github.com/cdarwin/go-koans
* https://github.com/cjudd/groovy_koans
* https://github.com/joecannatti/Objective-C-Koans
Other programming or technical koans:
* http://stevelosh.com/blog/2013/04/git-koans/
* https://github.com/chicagoruby/MongoDB_Koans
* http://blog.sanctum.geek.nz/vim-koans/
(For any aspiring koan writers, Arc, Rust, and Scheme lack koans. And PHP's and R's are pretty sparse.)
https://github.com/google/lisp-koans/blob/master/.koans
to remove the last entry ":threads" it should work.