this post was submitted on 17 Oct 2023
3 points (100.0% liked)

Emacs

305 readers
1 users here now

A community for the timeless and infinitely powerful editor. Want to see what Emacs is capable of?!

Get Emacs

Rules

  1. Posts should be emacs related
  2. Be kind please
  3. Yes, we already know: Google results for "emacs" and "vi" link to each other. We good.

Emacs Resources

Emacs Tutorials

Useful Emacs configuration files and distributions

Quick pain-saver tip

founded 1 year ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[–] AbstProcDo@alien.top 1 points 11 months ago (2 children)

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

[–] arthurno1@alien.top 1 points 11 months 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.

[–] 7890yuiop@alien.top 1 points 11 months ago
(type-of (read "foo"))
symbol

(type-of (read "\"foo\""))
string

(type-of (read "42"))
integer

(type-of (read "[42]"))
vector

(type-of (read "(42)"))
cons

Etc, etc...

The lisp reader reads text and it produces lisp objects of various types (which might later be evaluated as code).