'''[http://www.newlisp.org%|%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 frontend. ** Reference ** [https://www.taoeffect.com/blog/2010/01/how-newlisp-took-my-breath-and-syntax-away/%|%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 `[namespace%|%namespaces]`. Contexts are used to achieve a "lexical closure-like mechanism", also usefeul 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 implementtions of features such as procedures that modify their definition ''while they are running''. <> lisp