To recap: OPFR ("Outer-Parenthesis-Free REPL") is a meme/pattern/library(?)
for a reader that wraps a set of parens around whatever the user types
and then passes that to EVAL (then PRINTs & LOOPs).
Almost a month ago [in the "Road to Clojure Survey 2.0" thread],
I promised Madhu:
+---------------
| Madhu <enometh@meer.net> wrote:
| +---------------
| | Which reminds me to ask: could you consider and releasing OPFR?
| +---------------
|
| Sure, no problem. I'll put that on the "to do real soon" list,
| and will post here when that happens.
+---------------
Sorry it's taken so much longer than I expected -- a week's illness
and a couple of sysadmin crises got in the way, not not to mention
having to weed through about a dozen variations I had lying around
[I *did* mention that I tend to treat OPFR as a "pattern", not a
"library", yes? And freely hack up random variations at need?].
But I now have a (somewhat-)cleaned-up reference version up on my
web site, along with an example "shell script" driver for CMUCL
[the one I usually use] and a *very*-lightly-tested one for CLISP:
http://rpw3.org/hacks/lisp/opfr.lisp ; 11554 bytes
http://rpw3.org/hacks/lisp/opfr.cmucl ; 2541 bytes
http://rpw3.org/hacks/lisp/opfr.clisp ; 1972 bytes
All have "ISC/OpenBSD"-style licenses. [Like "MIT", but shorter.]
You can COMPILE-FILE "opfr.lisp", if you like, though since it runs
at human speed the performance of interpreting source shouldn't be
an issue.
The only documentation is comments in the source. [Note: There *are*
a couple of documented bugs/limitations! But they've never been an
issue in any of the uses I've made of it.] You will almost certainly
need to tweak the paths in the driver scripts.
Have fun!
-Rob
-----
Rob Warnock <rpw3@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607