Giter VIP home page Giter VIP logo

elisp-koans's Introduction

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 components of the elisp syntax and environment. Fixing the tests leads you on a tutorial of elisp.

These koans are for those learning to code in Emacs Lisp and customize Emacs. You should already be able to make your way around Emacs 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 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/run-tests, or a single koan group by calling it interactively.

To quickly load all of the tests call the interactive function elisp-koans/load-groups.

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.

elisp-koans's People

Contributors

jtmoulia avatar bcfurtado avatar matthew-piziak avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.