This is a revised port of<p>Lisp interpreter in Dart
<a href="http://www.oki-osk.jp/esc/dart/lisp-en.html" rel="nofollow">http://www.oki-osk.jp/esc/dart/lisp-en.html</a><p>Lisp interpreter in TypeScript
<a href="http://www.oki-osk.jp/esc/typescript/lisp-en.html" rel="nofollow">http://www.oki-osk.jp/esc/typescript/lisp-en.html</a><p>to Go with the addition of "future" and "force" which makes use of goroutines' concurrency.<p><pre><code> (let ((a (future (prin1 "hi"))))
(dotimes (i 20)
(princ i)
(princ " "))
(force a))
(terpri)
</code></pre>
It is not deterministic when the word "hi" will be printed.<p><pre><code> $ lisp-light test.l
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 "hi"16 17 18 19
$</code></pre>