The Io language is a very simple & elegant homoiconic language. It was introduced as one of the seven languages in the '7 Languages in 7 Weeks' book. It's basically influenced by Lisp and Self, Smalltalk.
7 Langs/7 Weeks is such a great book. I was intrigued by Io, but enthralled by Erlang, which ended up taking my career on a wildly different path, if only briefly.
If you do the exercises it might take seven weeks at a few hours each. If you don't, you could read the book in a night. I don't think I finished it (it was a work bookclub that died out halfway); now would definitely be good time to go back. There's a second book in the series I wanted to try for Elm and Elixir.
I read it over a couple of weeks of sitting out in a pub beer garden on evenings I wasn't doing anything else.
I almost certainly didn't learn everything there was to learn from the book in the process, but I definitely felt like I'd got my value for money out of it.
I read about it there too, but maybe I misremembered it.
I cam away with the distinct impression that the great thing about IO was the interpreter could be modified (ala lisp) by adding or removing functions, and as such it was an easy language to create functional "sandboxes" in by just creating a subclass and modifying the available method.
But I can find no mention of that on the projects docs..
Two of the best Io-related blog posts by _why:
* Io Has a Very Clean Mirror - https://viewsourcecode.org/why/hackety.org/2008/01/05/ioHasA...
* Lazy Bricks, Lazy Mortar - https://viewsourcecode.org/why/hackety.org/2008/01/10/lazyBr...
And some code examples:
* Making an Account object - https://github.com/IoLanguage/io/blob/master/samples/misc/Ac... * Bottles of Beer - https://github.com/IoLanguage/io/blob/master/samples/misc/Bo...