This project is dormant. I have not worked on it in years, and am unlikely to continue work on it anytime soon. I encourage you to check out "mal" -- "Make a Lisp" -- by Joel Martin, a project inspired by this one, that includes implementations in dozens of languages, including Bash: https://github.com/kanaka/mal. While it's missing garbage collection, mal's Bash Lisp is incredibly clean and easy to hack on.
gherkin is a dialect of Lisp, and like other Lisps such as Clojure and [Scheme](http://en.wikipedia.org/wiki/Scheme_(programming_language) it features homoiconicity, first-class functions, and primitive functions for operating on a variety of data types such as strings, integers, symbols, and lists. As a citizen of *nix and the shell environment, it also provides *nix and shell interoperation facilities.
gherkin is currently alpha status, but our hope is to continue feature development until gherkin can be used in place of Bash for general purpose *nix scripting. If you're curious about our progress toward our first release, see our milestones.
gherkin requires GNU Bash version 4 or higher. If you're on Linux, this is probably already your shell. If you're on a Mac, we recommend you install a recent version of Bash with Homebrew.
Start a Read-Evaluate-Print-Loop (REPL) and evaluate a simple expression:
./gherkin > (+ 1 2) 3
You may exit the REPL with Ctrl-D.
Running a script
./gherkin -l fib.gk
core library function:Start a REPL and try a
./gherkin > (load-file "core") nil > (map inc '(1 2 3)) (2 3 4)
You may also load the core library and start a REPL with
./gherkin -l core.gk -r.
Learning more & getting involved
gherkin is brand new, under active development, and not yet formally released. As such, its usage is error-prone and its documentation spotty. If you'd like to help us improve gherkin, its documentation, or have any questions, please join us:
- On the firstname.lastname@example.org mailing list.