Pils is an anagram of Lisp. It is a tiny lisp, hacked in four days or maybe five, and has never been seriously tested. I've made it as Tcl-ish as possible.
Differences to Tcl
Differences to Lisp
Differences to the state of should-be
(*1) RS: When you're in the process of making a Lisp-like language, I think the unification in Scheme
(define var 'value) (define (function x y) (+ x y))
is a good idea (and can of course easily be had in Tcl, see the Scheme page). The only trouble is that argument-less functions can not be expressed this way...
wdb: This leads to the consequence that procs are referenced by vars as in Scheme. My attempt was to make it extremely Tcl-ish. In Tcl, proc names are not variable names but can be thought of as pointers. Of course, you can always say:
(set x list) ;; line 1 ($x a b c) ;; line 2 ;; equivalent to (list a b), note the shortcut $
Here, list is a pointer to a procedure, x is a pointer to a string constant. In line 2, we see a pointer to a pointer to a procedure. That wasn't my intention, but instead to combine the minimalism of Tcl with the ease of Lisp.