The goal of this "Readable Lisp s-expressions" project is to develop, implement, and gain widespread adoption of more readable format(s) for the S-expressions of Lisp-based languages (such as Common Lisp, Scheme, Emacs Lisp, and Arc).
The [Problem] is that traditional Lisps don't support infix notation, don't support the standard math notation f(...), and require an excessive number of parentheses. Our [Solution] has three tiers that add additional abbreviations to existing Lisp readers. Put briefly:
These are just additional abbreviations - normally-formatted s-expressions continue to work correctly.
You do not need to use all three tiers. You could use neoteric-expressions, for example, which automatically include c-expressions.
Here's one of our [Examples] of sweet-expressions (the top notation tier):
(Awkward) S-expression | (Improved) Sweet-expression |
---|---|
(define (factorial n) (if (<= n 1) 1 (* n (factorial (- n 1))))) |
define factorial(n) if {n <= 1} 1 {n * factorial{n - 1}} |
The "releases" (files) area distributes our software releases for download. The README describes how to install them; they install using usual conventions and include documentation. This reflects the latest version on the "master" branch.
Our draft (development) code is in the readable code git repository "develop" branch; see [Workflow] for information on our workflow. The easy way to start contributing code is to select the "develop" branch (not the "master" branch) and fork it; when you're done, submit a push request. If you want to get the development code using the command line, and give it a go, do this:
git clone git://git.code.sf.net/p/readable/code readable-code cd readable-code git checkout -b develop origin/develop # Set up and switch to "develop" branch autoreconf -i && ./configure --prefix=/usr && make
[Join] - Please join us!
[Workflow] - Information on our workflow (esp. moving information from the "develop" development branch to the "master" release branch)
Wiki: Analysis
Wiki: Common-lisp-tutorial
Wiki: Examples
Wiki: Goals
Wiki: Home
Wiki: Hubris
Wiki: Install-howto
Wiki: Join
Wiki: Prepackaged
Wiki: Problem
Wiki: Rationale
Wiki: Retort
Wiki: Scheme-tutorial
Wiki: Solution
Wiki: Style
Wiki: Workflow