Skip to content

Emacs Lisp Koans -- learn elisp through test-driven development.

License

Notifications You must be signed in to change notification settings

jtmoulia/elisp-koans

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

elisp-koans

What is elisp-koans?

elisp-koans helps you learn Emacs Lisp (elisp) via test-driven development. You’re provided with suites of tests describing the elisp syntax and environment. Fixing the tests leads you on a tutorial of elisp.

These koans are intended for those learning to code in Emacs Lisp and

plus be able to call interactive functions, evaluate code in the buffer, and look up documentation.

Usage

Create a clone of this repository:

git clone https://github.com/jtmoulia/elisp-koans

First load elisp-koans.el by opening it in Emacs then running the interactive command eval-buffer.

Next open up koans/asserts.el and navigate to the first test:

(elisp-koans/deftest
 elisp-koans/asserts-true ()
 "`t' is true. Replace the blank with `t' to assert it is true"
 (should ___))

Fix the test by replacing the blank (___) with the appropriate value, in this case t as described in the docstring:

(should t)

Once the test is fixed evaluate the test and then run it by calling elisp-koans/run-test and selecting the test: elisp-koans/asserts-true. ERT will run the test and report the result.

You’re ready to move on to the remaining koans in koans/asserts.el and beyond. The variable elisp-koans-groups lists the remaining suites of koans which are ordered to provide a tour of Emacs Lisp. As you progress run all of the loaded koans by calling elisp-koans/contemplate, or a single test by calling elisp-koans/run-test.

The Cheatsheet

You can check your answers against the cheatsheet, i.e. a branch called cheatsheet which has the koan solutions filled in. This branch is kept up to date by staying one commit ahead of master

Credits

elisp-koans is adapted from Google’s Common Lisp Koans, which was in turn inspired by the family of TDD Koans, e.g. Ruby Koans and Python Koans.

License

The Common Lisp Koan’s were modified under the terms of the Apache License.

elisp-koans uses the Apache License.

About

Emacs Lisp Koans -- learn elisp through test-driven development.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published