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
- Tcl has 1 (one) data type: the string, Pils has 2 (two) data types: the atom and the list.
- The procedure string has the new sub command append. (Btw, by formal reasons, it would be nice to see it also in regular Tcl. I think that it is not really expensive!)
Differences to Lisp
- The list is not cons'd but instead a simple Tcl list. (This idea is stolen from NewLisp [L1 ].)
- No cons, car, cdr, instead lindex etc. No define but instead proc. (*1)
- No symbols as every atom can serve as such by saying (set varName) or using the shortcut $varName. (I told you. As Tcl-ish as possible.)
Differences to the state of should-be
- for and foreach not yet implemented
- many many ... hrmpf ... bux?
(*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...