Scheme is not a functional programming language. The last 2/3rds of sicp are possible only because you can mutate state.
Actors in Elixir (and AFAIK the Actor Model in general) can mutate their internal state in response to receiving a message. It would probably be awkward to use actors in this way just to facilitate mutation though.
Scheme is not a pure functional language. I think you need to check the rest of your notes.
According to Let Over Lambda, Lisp is the least functional programming language ;)
(define lol
(let ((a 0))
(lambda ()
(set! a (+ a 1))
a)))
Scheme is a functional programming language in the same way python is. The only difference is that it has tail call optimisation and the stack doesn't have an arbitrary limit on the number of function calls it can hold.
Functional core, imperative wrapper is one of the few sane ways to build a large (Conway’s Law afflicted) system, and too many of my peers never studies SICP in school. They don’t even know the damage they do, and as we’ve learned in many, many other circles, vilifying people does not get them to change. It’s a tool of last resort, and most often used to publicly label someone for ostracism, not help.
So excuse me, but y’all are crazy. We need SICP for JavaScript developers more than we need SICP for every functional language in the world, combined. And JavaScript is only one corner of the programming world.
Write functional code in a language that does not force you to write functional code. Take the training wheels off. Live in the real world.