Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jtmoulia/elisp-koans
Emacs Lisp Koans -- learn elisp through test-driven development.
https://github.com/jtmoulia/elisp-koans
emacs emacs-lisp koans
Last synced: about 2 months ago
JSON representation
Emacs Lisp Koans -- learn elisp through test-driven development.
- Host: GitHub
- URL: https://github.com/jtmoulia/elisp-koans
- Owner: jtmoulia
- License: apache-2.0
- Created: 2019-07-14T04:11:27.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-09-19T01:58:21.000Z (over 1 year ago)
- Last Synced: 2024-08-05T06:03:33.313Z (6 months ago)
- Topics: emacs, emacs-lisp, koans
- Language: Emacs Lisp
- Size: 98.6 KB
- Stars: 158
- Watchers: 11
- Forks: 22
- Open Issues: 7
-
Metadata Files:
- Readme: README.org
- Changelog: CHANGELOG.org
- License: LICENSE
Awesome Lists containing this project
README
* elisp-koans
** What is elisp-koans?
=elisp-koans= helps you learn [[info:elisp:Introduction][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
- customize Emacs. You should already be able to [[https://www.gnu.org/software/emacs/tour/][make your way around Emacs]]
plus be able to [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Interactive-Call.html][call interactive functions]], [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Lisp-Eval.html][evaluate code in the buffer]], and
[[https://www.gnu.org/software/emacs/manual/html_node/elisp/Help-Functions.html][look up documentation]].** Usage
Create a clone of this repository:
#+BEGIN_SRC sh
git clone https://github.com/jtmoulia/elisp-koans
#+END_SRCFirst load [[file:elisp-koans.el][elisp-koans.el]] by opening it in Emacs then running the interactive
command =eval-buffer=.Next open up [[file:koans/asserts.el::(elisp-koans/define-test][koans/asserts.el]] and navigate to the first test:
#+BEGIN_SRC emacs-lisp
(elisp-koans/deftest
elisp-koans/asserts-true ()
"`t' is true. Replace the blank with `t' to assert it is true"
(should ___))
#+END_SRCFix the test by replacing the blank (=___=) with the appropriate value, in
this case =t= as described in the docstring:#+BEGIN_SRC emacs-lisp
(should t)
#+END_SRCOnce 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 [[https://github.com/google/lisp-koans][Common Lisp Koans]], which was in turn
inspired by the family of TDD Koans, e.g. [[http://rubykoans.com/][Ruby Koans]] and [[https://github.com/gregmalcolm/python_koans][Python Koans]].** License
The Common Lisp Koan's were modified under the terms of the Apache License.=elisp-koans= uses the [[file:LICENSE][Apache License]].