newLISP

newLISP is a Lisp-like general-purpose scripting language that is a strong candidate for embedded systems applications. It is distributed with a Tcl/Tk front-end.

Reference

How newLISP Took My Breath (And Syntax) Away , Greg Slepak, 2010-01-08
a detailed overview of the language and its features.

Description

The newLISP features that differentiate it from Common Lisp bring it closer to Tcl, although it remains list-based rather than string-based:

  • A simplified syntax
  • dynamic and introspective.
  • variables are dynamically scoped, but unlike Tcl, which provides explicit control over variable bindings, there is some danger in newLISP of inadvertently picking up free variables. This potential can be avoided by declaring the variable as a formal parameter to the function, which works because variables can only be nil, not undefined.
  • Its contexts function much like Tcl namespaces. Contexts are used to achieve a "lexical closure-like mechanism", also useful for avoiding picking up free variables. Unlike namespaces, contexts can not be nested.
  • Like apply, newLISP lambda expressions are data.

See Also

Playing newLISP
Tcl implementations of features such as procedures that modify their definition while they are running.