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.

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

    Interesting. It’s intelligent capability to discern and identify numbers, strings, and symbols. What I tried is to feed to minibuffer word string.

    • 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.