{"id":13723377,"url":"https://github.com/sl4m/gnu_smalltalk_koans","last_synced_at":"2025-12-17T09:49:23.406Z","repository":{"id":66475740,"uuid":"1124623","full_name":"sl4m/gnu_smalltalk_koans","owner":"sl4m","description":"A set of tests to teach you Smalltalk","archived":false,"fork":false,"pushed_at":"2020-06-19T00:19:31.000Z","size":123,"stargazers_count":173,"open_issues_count":0,"forks_count":35,"subscribers_count":8,"default_branch":"dev","last_synced_at":"2025-11-30T13:56:41.084Z","etag":null,"topics":["koans","learn-a-new-language","smalltalk"],"latest_commit_sha":null,"homepage":"https://sl4m.github.io/gnu_smalltalk_koans/","language":"Smalltalk","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sl4m.png","metadata":{"files":{"readme":"README.markdown","changelog":"HISTORY.markdown","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2010-11-30T05:46:26.000Z","updated_at":"2025-09-09T02:06:59.000Z","dependencies_parsed_at":"2024-04-23T13:42:16.634Z","dependency_job_id":null,"html_url":"https://github.com/sl4m/gnu_smalltalk_koans","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sl4m/gnu_smalltalk_koans","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sl4m%2Fgnu_smalltalk_koans","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sl4m%2Fgnu_smalltalk_koans/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sl4m%2Fgnu_smalltalk_koans/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sl4m%2Fgnu_smalltalk_koans/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sl4m","download_url":"https://codeload.github.com/sl4m/gnu_smalltalk_koans/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sl4m%2Fgnu_smalltalk_koans/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27781164,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-17T02:00:08.291Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["koans","learn-a-new-language","smalltalk"],"created_at":"2024-08-03T01:01:40.321Z","updated_at":"2025-12-17T09:49:23.390Z","avatar_url":"https://github.com/sl4m.png","language":"Smalltalk","funding_links":[],"categories":["Languages"],"sub_categories":["Other Languages"],"readme":"## GNU Smalltalk Koans [![Build Status](https://travis-ci.org/sl4m/gnu_smalltalk_koans.svg?branch=master)](https://travis-ci.org/sl4m/gnu_smalltalk_koans)\n\nHey there and welcome!\n\n### Supported GNU Smalltalk Versions\n\nGNU 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.\n\nNote: I am certain that `3.0.x` does not work and it will complain about not understanding `#asString`.\n\n### GNU Smalltalk on Mac OS X\n\nThe simplest way to install GNU Smalltalk is via homebrew:\n\n`brew install gnu-smalltalk`\n\nOr you can use the Docker image. See below.\n\n### Running koans locally\n\nIn the root directory of the project, type:\n\n`script/run`\n\nYou will see a message similar to this:\n\n`TestAssert#testTruth has damaged your karma.`\n\nThis means you will need to open the `TestAssert.st` file under `src/koans` and solve the test under `testTruth` method (aka message).\n\nAll koan files contain a set of tests, each starting with 'test'.  Solve each test one by one, running `script/run` in between.\n\nBy default, `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!\n\n### Running koans via Docker\n\nMake sure you have Docker installed.\n\nIn the root directory of the project, type:\n\n`script/docker/run`\n\nThis runs against a small [image](https://hub.docker.com/r/sl4m/gnu-smalltalk) built on debian:stretch-slim.\n\n### Editors with Smalltalk support\n\n* vim\n* emacs\n\n### Things You Should Know Before Starting\n\n`| 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.\n\n`:=` is an assignment operator\n\n`\"this is a comment\"`\n\n`'this is a string'`\n\n`#speak` is the notation used to describe the message 'speak'.\n\nWords wrapped in `\u003c\u003e` are called pragmas and define class comments, category, imported namespaces, and the shape of indexed instance variables.  More information [here](http://www.gnu.org/software/smalltalk/manual/gst.html#Syntax).\n\nIn depth information [here](http://squeak.joyful.com/LanguageNotes).\n\nOk, have at it!\n\n### List of Koans\n\n* TestAssert\n* TestBasic\n* TestNil\n* TestObject\n* TestMessage\n* TestNumber\n* TestString\n* TestCharacter\n* TestSymbol\n* TestArray\n* TestOrderedCollection\n* TestSortedCollection\n* TestBag\n* TestAssociation\n* TestDictionary\n* TestSet\n* TestBlock\n* TestCollectionsRevisited\n* TestIteration\n* TestBoolean\n* TestException\n* TestRegex\n* TestClass\n\n### Future Koans\n\n* TestMetaclass\n\n### Pull Requests and Feedback are Welcome!\n\nPlease create a GitHub issue or find me on Twitter ([@skim](https://twitter.com/skim)), if you have any suggestions on how to improve existing koans, new koans, or any other comments.\n\n### Inspiration and Credits\n\nGNU Smalltalk Koans were inspired by [Ruby Koans](https://github.com/edgecase/ruby_koans) and [Clojure Koans](https://github.com/functional-koans/clojure-koans).\n\nThanks to [Matt Yoho](https://twitter.com/#!/mattyoho) at Edgecase for letting me port some of the koans over.\n\n#### Contributors\n\n* [Craig Demyanovich](https://twitter.com/demmer12)\n* [Anita Kuno](https://twitter.com/anteaya)\n* [@german](https://github.com/german)\n* [@craigjbass](https://github.com/craigjbass)\n\n#### Other thanks:\n\n* [8th Light](https://8thlight.com/)\n* [Chris Rathman](http://squeak.joyful.com/LanguageNotes) for the awesome language notes.\n* [@jayden](https://github.com/jayden) for being the first person to run through the koans.\n\n### License\n\n![cc-license](https://licensebuttons.net/l/by-nc-sa/3.0/88x31.png)\n\nGNU Smalltalk Koans shares the same license as Ruby Koans and is released under a Creative Commons,\nAttribution-NonCommercial-ShareAlike, Version 3.0\n([https://creativecommons.org/licenses/by-nc-sa/3.0/](https://creativecommons.org/licenses/by-nc-sa/3.0/)) License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsl4m%2Fgnu_smalltalk_koans","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsl4m%2Fgnu_smalltalk_koans","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsl4m%2Fgnu_smalltalk_koans/lists"}