I once invented a programming language where EVERYTHING was an object. No message keywords. 1 is an object. + is an object. You can send an object to another object - you get back an object. Example 1+ is an object. Its is the result of sending + to 1. If you send 1+ the object 1, you get 2. If you send 1+ the object + you get a run-time type error. You can also go left to right. +1 is an object. If you send +1 to 2, you get 3. It gets nice when you add list objects. (1,2,3,4,5)+1 => (1+,2+,3+,4+,5+) 1 => (2,3,4,5,6). And so on.
This sounds a bit like Smalltalk! But with partial application…
It also reminds me of the Emily programming language: <a href="https://github.com/mcclure/emily/blob/stable/doc/tutorial.md" rel="nofollow">https://github.com/mcclure/emily/blob/stable/doc/tutorial.md
Yeah, the Smalltalk and Self family take this "everything is an object" approach, sometimes to extremes.
Another relatively well known language in this space for its use as an alternative to especially Lua in embedding situations is Io: <a href="https://iolanguage.org/" rel="nofollow">https://iolanguage.org/
herodotus · · focus · HN ↗
TazeTSchnitzel · · focus · HN ↗
It also reminds me of the Emily programming language: <a href="https://github.com/mcclure/emily/blob/stable/doc/tutorial.md" rel="nofollow">https://github.com/mcclure/emily/blob/stable/doc/tutorial.md
WorldMaker · · focus · HN ↗
Another relatively well known language in this space for its use as an alternative to especially Lua in embedding situations is Io: <a href="https://iolanguage.org/" rel="nofollow">https://iolanguage.org/