This question follows from this one I made earlier.
If you ask for
FullForm you will get back
4, and that's fine.
4 is supposed to be an atomic object. And if you do
AtomQ, you will get back
True, confirming that
4 is an atom.
But there's a problem. If you do
Head, you get
Integer. And this doesn't make sense. The whole meaning of the word atomic is "Unable to be split or made any smaller".
And yet apparently we can split a head off of an unsplittable thing.
Why is this? I don't mean teleologically--obviously its useful to be able to test whether a thing is an integer or a real or whatever. But why or how is this consistent inside the Wolfram Language?