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.

  • arthurno1B
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    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.