"Beware the Jabberwock, my son!
The jaws that bite, the claws that catch!
Beware the Jubjub bird, and shun
The frumious Bandersnatch!"
-- Lewis C...
For further actions, you may consider blocking this person and/or reporting abuse
I'm afraid you've touched on a common misconception of Lisp. It's often said that Lisp only has one type, "the list". You've expended this to two types, lists and atoms. But this simply isn't true. Lisp also has functions as first class types, it has numbers, strings, etc. The fact that the syntax uses only a subset of these types does not mean that the language doesn't have them. It just means that only a subset of the types are needed in order to represent a program in the languages own data types.
Aren't functions, strings, and numbers just particular kinds of atoms?
Well, sure they're atomic values. But atom isn't a type in Lisp. I didn't want to additionally correct you on your use of the word atom, because I felt it was needlessly pedantic at the time, but I see now it's the crux of the confusion. The proper term for would be symbols. Those are the things that have the single quote in front of them and can represent identifiers when used to express the syntax of Lisp itself. Atoms, which is a term you could use to classify anything that's not an aggregate container, would include functions, strings, symbols, etc.
But if I told you that Python only had three data types, dict, array, and atom, wouldn't you wonder why I've collapsed string, int, float, etc into one type?
Thanks for the clarification, Mike! I need to do some more research...
No problem. To help your research, I might write up a post from a talk I have given a couple of times about this exact topic.
Have you tried emojicode?
Here's a hello world:
Some trivia on APL and J:
Emoji-based languages have existed since at least 2015, it looks like. But I'm glad that emojicode is gaining traction! I love me a good esolang.
APL developers actually had to get specific typewriter balls in the early days (before dot-based and laser printers) if they wanted to print out their source code to share it with other developers.
If you like terse C (or C++) code, you should check out this ray-tracing code that fits on the back of a business card.
I'll definitely check out that paper. Thanks a lot for sharing, Raunak!
Lisp doesn't belong here. Lisp is a regular programming language.
From the third paragraph of the intro: “Most of these are considered “esoteric” though some of them are actually used by serious programmers on a regular basis. See if you can tell which are which.”
So are APL and Q#. I included them because I thought they were "interesting".
Somewhat surprised that this list does not include INTERCAL, one of the original esoteric languages, and the only implemented programming language where the compiler may refuse to compile your code based on how polite it is (PLEASE is a keyword in INTERCAL, it's a no-op in terms of actual code execution, but if it doesn't appear with the right frequency in the source code, the compiler will throw an error because the program is either 'not polite enough' or 'too polite').
It does?
Ah, sorry, somehow completely missed that!
No worries! It is Monday, after all
Funciton reminded me of pure data; but looks even more difficult to work with :D
The famous John Conway's Game of Life, written in Dyalog APL, is fully explained, step-by-step, here.
Funciton was awesome! XD
BTW I am a fan of esolangs too. Love them so much. XD