Hey there and welcome!
GNU Smalltalk versions
3.2.2 or higher should work on Mac OS X and Linux. I have written these koans on
3.2.2, Mac OS X 10.6.
Note: I am certain that
3.0.x does not work and it will complain about not understanding
Support for Windows is on its way (once I figure out how to build it successfully).
The simplest way to install GNU Smalltalk is via homebrew:
brew install gnu-smalltalk
This will build GNU Smalltalk
3.2.2 in 32-bits. If you want the latest, I encourage you to try
brew install gnu-smalltalk --HEAD
You can also install it via MacPorts.
Make sure you have the following tools installed:
Grab GNU Smalltalk
3.2.4 source from ftp://ftp.gnu.org/gnu/smalltalk.
autoreconf -vi ./configure make sudo make install
Test by running
gst and interact with the REPL.
In the root directory of the project, type:
You will see a message similar to this:
TestAssert#testTruth has damaged your karma.
This means you will need to open the
TestAssert.st file under
src/koans and solve the test under
testTruth method (aka message).
All koan files contain a set of tests, each starting with 'test'. Solve each test one by one, running
script/run in between.
script/run does not reveal the answer. If you are truly stuck in a koan, type
script/run_and_reveal to run and reveal the answer. Use this sparingly!
| variable1 variable2 | is to declare variable1 and variable2 separate by a space. At least one space must be used to separate variables. Commas are not used.
:= is an assignment operator
"this is a comment"
'this is a string'
#speak is the notation used to describe the message 'speak'.
Words wrapped in
<> are called pragmas and define class comments, category, imported namespaces, and the shape of indexed instance variables. More information here.
Ok, have at it!
Please create a GitHub issue or find me on Twitter (@skim), if you have any suggestions on how to improve existing koans, new koans, or any other comments.
There is no set time, but I plan to port these koans over to the following Smalltalk dialects:
Thanks to Matt Yoho at Edgecase for letting me port some of the koans over.
GNU Smalltalk Koans shares the same license as Ruby Koans and is released under a Creative Commons, Attribution-NonCommercial-ShareAlike, Version 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) License.