* Names to defun, defvar, defconst
@ 2024-07-01 20:14 uzibalqa
2024-07-01 20:37 ` CToID
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: uzibalqa @ 2024-07-01 20:14 UTC (permalink / raw)
To: uzibalqa via Users list for the GNU Emacs text editor
Names to defun, defvar, and defconst, can include numbers (digits). Right?
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Names to defun, defvar, defconst
2024-07-01 20:14 Names to defun, defvar, defconst uzibalqa
@ 2024-07-01 20:37 ` CToID
[not found] ` <1914797742.11180.1719865741072@mail.yahoo.com>
2024-07-01 23:21 ` tpeplt
2 siblings, 0 replies; 9+ messages in thread
From: CToID @ 2024-07-01 20:37 UTC (permalink / raw)
To: uzibalqa; +Cc: help-gnu-emacs@gnu.org
> Names to defun, defvar, and defconst, can include numbers (digits). Right?
As long as there are other non-digit characters in the name, yes. See the name of the function `1+`.
---
Best,
ID
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Names to defun, defvar, defconst
[not found] ` <N-WomROhsQbqycJ7xelPXzdxPQS1v1PljZZaDu0i0G8PGR73Qjrb49DeBX1K7POfXnnwqQT_7bLksXzvgbf4eN1HyWPv82hEW-E9Y7CJbqU=@proton.me>
@ 2024-07-01 20:42 ` CToID
2024-07-01 21:48 ` uzibalqa
0 siblings, 1 reply; 9+ messages in thread
From: CToID @ 2024-07-01 20:42 UTC (permalink / raw)
To: uzibalqa; +Cc: help-gnu-emacs@gnu.org
> So these are all valid names
>
> (defun func1
>
> (defvar var2
>
> (defconst const3
Of course they are, I believe these kind of names are valid in almost every single programming language.
---
Best,
ID
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Names to defun, defvar, defconst
2024-07-01 20:42 ` CToID
@ 2024-07-01 21:48 ` uzibalqa
2024-07-01 22:32 ` [External] : " Drew Adams
0 siblings, 1 reply; 9+ messages in thread
From: uzibalqa @ 2024-07-01 21:48 UTC (permalink / raw)
To: CToID; +Cc: help-gnu-emacs@gnu.org
On Monday, July 1st, 2024 at 8:42 PM, CToID <funk443@yahoo.com.tw> wrote:
> > So these are all valid names
> >
> > (defun func1
> >
> > (defvar var2
> >
> > (defconst const3
>
>
> Of course they are, I believe these kind of names are valid in almost every single programming language.
>
> ---
>
> Best,
>
> ID
Latex L3 Programming Layer does not allow numbers, and neither underscores or dashes.
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [External] : Re: Names to defun, defvar, defconst
2024-07-01 21:48 ` uzibalqa
@ 2024-07-01 22:32 ` Drew Adams
2024-07-01 22:41 ` Drew Adams
2024-07-02 3:34 ` Stefan Monnier via Users list for the GNU Emacs text editor
0 siblings, 2 replies; 9+ messages in thread
From: Drew Adams @ 2024-07-01 22:32 UTC (permalink / raw)
To: uzibalqa, CToID; +Cc: help-gnu-emacs@gnu.org
> > So these are all valid names
> > (defun func1
> > (defvar var2
> > (defconst const3
>
> Of course they are, I believe these kind of names
> are valid in almost every single programming language.
You can use pretty much any chars. Some chars
(e.g. SPC) you need to escape, with \. E.g.
(defun \;not\ a\ comment ()
(message "A function.")
42)
This prints "A function." and returns 42:
(\;not\ a\ comment)
You can't use a keyword name (e.g. `:foo')
with defconst.
You _can_ use a keyword name with defvar, but
it doesn't do anything. Symbols with keyword
names as their `symbol-name' always evaluate
to themselves.
To me, using defvar with a keyword name should
be a BUG, just as it is with defconst.
(defvar :foo 42 "101010") raises no error, and
evaluating `:foo' as a variable returns `:foo',
not 42, because it's a keyword, i.e., a constant.
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [External] : Re: Names to defun, defvar, defconst
2024-07-01 22:32 ` [External] : " Drew Adams
@ 2024-07-01 22:41 ` Drew Adams
2024-07-02 3:34 ` Stefan Monnier via Users list for the GNU Emacs text editor
1 sibling, 0 replies; 9+ messages in thread
From: Drew Adams @ 2024-07-01 22:41 UTC (permalink / raw)
To: Drew Adams, uzibalqa, CToID; +Cc: help-gnu-emacs@gnu.org
> You _can_ use a keyword name with defvar, but
> it doesn't do anything. Symbols with keyword
> names as their `symbol-name' always evaluate
> to themselves.
>
> To me, using defvar with a keyword name should
> be a BUG, just as it is with defconst.
>
> (defvar :foo 42 "101010") raises no error, and
> evaluating `:foo' as a variable returns `:foo',
> not 42, because it's a keyword, i.e., a constant.
This bug was fixed in Emacs 28. Prior to that
what I said was true. (I still use Emacs 26.)
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Names to defun, defvar, defconst
2024-07-01 20:14 Names to defun, defvar, defconst uzibalqa
2024-07-01 20:37 ` CToID
[not found] ` <1914797742.11180.1719865741072@mail.yahoo.com>
@ 2024-07-01 23:21 ` tpeplt
2 siblings, 0 replies; 9+ messages in thread
From: tpeplt @ 2024-07-01 23:21 UTC (permalink / raw)
To: uzibalqa; +Cc: uzibalqa via Users list for the GNU Emacs text editor
uzibalqa <uzibalqa@proton.me> writes:
> Names to defun, defvar, and defconst, can include numbers (digits). Right?
From:
(info "(elisp) Symbol Type")
"A symbol name can contain any characters whatever. Most symbol names
are written with letters, digits, and the punctuation characters
‘-+=*/’. Such names require no special punctuation; the characters
of the name suffice as long as the name does not look like a number.
(If it does, write a ‘\’ at the beginning of the name to force
interpretation as a symbol.) The characters ‘_~!@$%^&:<>{}?’ are less
often used but also require no special punctuation. Any other
characters may be included in a symbol's name by escaping them with a
backslash. In contrast to its use in strings, however, a backslash in
the name of a symbol simply quotes the single character that follows the
backslash."
There is more in that subsection of the chapter on Lisp data types.
--
The lyf so short, the craft so long to lerne.
- Geoffrey Chaucer, The Parliament of Birds.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [External] : Re: Names to defun, defvar, defconst
2024-07-01 22:32 ` [External] : " Drew Adams
2024-07-01 22:41 ` Drew Adams
@ 2024-07-02 3:34 ` Stefan Monnier via Users list for the GNU Emacs text editor
2024-07-02 3:42 ` Drew Adams
1 sibling, 1 reply; 9+ messages in thread
From: Stefan Monnier via Users list for the GNU Emacs text editor @ 2024-07-02 3:34 UTC (permalink / raw)
To: help-gnu-emacs
> You can't use a keyword name (e.g. `:foo') with defconst.
Except for (defconst :foo :foo)
Stefan
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [External] : Re: Names to defun, defvar, defconst
2024-07-02 3:34 ` Stefan Monnier via Users list for the GNU Emacs text editor
@ 2024-07-02 3:42 ` Drew Adams
0 siblings, 0 replies; 9+ messages in thread
From: Drew Adams @ 2024-07-02 3:42 UTC (permalink / raw)
To: Stefan Monnier, 'Help-Gnu-Emacs (help-gnu-emacs@gnu.org)'
[-- Attachment #1: Type: text/plain, Size: 135 bytes --]
> > You can't use a keyword name (e.g. `:foo') with defconst.
>
> Except for (defconst :foo :foo)
Hah! Indeed.
Thank you. ;-)
[-- Attachment #2: winmail.dat --]
[-- Type: application/ms-tnef, Size: 14506 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-07-02 3:42 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-01 20:14 Names to defun, defvar, defconst uzibalqa
2024-07-01 20:37 ` CToID
[not found] ` <1914797742.11180.1719865741072@mail.yahoo.com>
[not found] ` <N-WomROhsQbqycJ7xelPXzdxPQS1v1PljZZaDu0i0G8PGR73Qjrb49DeBX1K7POfXnnwqQT_7bLksXzvgbf4eN1HyWPv82hEW-E9Y7CJbqU=@proton.me>
2024-07-01 20:42 ` CToID
2024-07-01 21:48 ` uzibalqa
2024-07-01 22:32 ` [External] : " Drew Adams
2024-07-01 22:41 ` Drew Adams
2024-07-02 3:34 ` Stefan Monnier via Users list for the GNU Emacs text editor
2024-07-02 3:42 ` Drew Adams
2024-07-01 23:21 ` tpeplt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).