<story><title>I can’t believe I’m praising Tcl</title><url>http://www.yosefk.com/blog/i-cant-believe-im-praising-tcl.html?</url></story><parent_chain></parent_chain><comment><author>antirez</author><text>About Tcl and the embedded world, a few years ago I wrote a single-file Tcl interpreter that is mostly compatible with current Tcl implementations (something is missing like namespaces, something was added like anonymous functions):&lt;p&gt;&lt;a href=&quot;http://jim.tcl.tk/index.html/doc/www/www/index.html&quot; rel=&quot;nofollow&quot;&gt;http://jim.tcl.tk/index.html/doc/www/www/index.html&lt;/a&gt;
(source code is here: &lt;a href=&quot;https://github.com/msteveb/jimtcl&quot; rel=&quot;nofollow&quot;&gt;https://github.com/msteveb/jimtcl&lt;/a&gt;)&lt;p&gt;Now maintained by Steve Bennett, and actively used by some embedded folks.</text></comment>
<story><title>I can’t believe I’m praising Tcl</title><url>http://www.yosefk.com/blog/i-cant-believe-im-praising-tcl.html?</url></story><parent_chain></parent_chain><comment><author>cturner</author><text>You can get lisp to interact more like a console language. Write a parser to accept python-ish whitespace syntax (whilst still allowing parens syntax), and transform that s-expressions so you can pass to the interpreter&lt;p&gt;To imply:&lt;p&gt;&lt;pre&gt;&lt;code&gt;    (define (fn a b)
      (list (car a) (car (car b))))
&lt;/code&gt;&lt;/pre&gt;
You could type:&lt;p&gt;&lt;pre&gt;&lt;code&gt;    define: fn a b
      list:
        car a
        car (car b)
&lt;/code&gt;&lt;/pre&gt;
As it&apos;s a console, in practice you&apos;ll mostly be typing commands like this:&lt;p&gt;&lt;pre&gt;&lt;code&gt;    load x y z
&lt;/code&gt;&lt;/pre&gt;
but you have good mechanisms for going deeper. And if you just want to write in s-expressions you still can.</text></comment>