It&#x27;s both... I feel like Scheme is oversold as axiomatic mathematics.  You have to add all this other stuff to it to make anything useful, in particular mutation and mutable data structures.  Even toy programs like the metacircular evaluator SICP need this!<p>And yes, I&#x27;ve been programming a lot in the intervening 19 years, and doing imperative programming with ((Lisp)) syntax is hugely annoying.  OCaml actually annoyed me in this regard too.  Maybe I will like Haskell, since it seems principled about mutation.<p>This is a real misunderstanding, see my response to this comment here: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=11412392" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=11412392</a><p>People think that there could have been some &quot;Church basis&quot; for computing.  In other words, the whole Lisp machines thing was folly.  It&#x27;s rightly in the dustbin of computing history.<p>FWIW I did many experiments in bootstrapping languages, with Python&#x2F;Lua, OCaml, femtolisp, C, ... I eventually ended up with (a tasteful subset) of C++, which somewhat amazed me, since I&#x27;ve never been one to like C++.  This is a whole other story, but it had to do with the fact that OCaml &quot;needs&quot; code generation with ocamllex and ocamlyacc&#x2F;menhir, and I was looking at how Julia is bootstrapped Lisp (impressive, but not what I want), etc.