In elisp, symbols serve as fundamental data structures that are more foundational compared to strings. This distinction often caused confusion for me until my encounter with the read function.
~ $ (type-of (read))
symbol
The fact that the read function yields symbols instead of strings from user-input was a delightful revelation. This discovery convinces me that the fundamental nature of symbols in elisp when compared to strings.
What I tried is to feed to minibuffer word string.
So you have called:
M-: (type-of (read)) RET string RET?
You have just created a temporary symbol named “string”. You can try this to see for yourself:
M-: (symbol-name (type-of (read))) RET
If you want a string object out of “string”, you will have to quote it in the minibuffer too:
M-: (type-of (read)) RET "string" RET?
I think you should have not downvoted /u/lispm below (or whomever it was); he has given a few very good questions to get you going on in exploring those things on your own.