From: Emanuel Berg <embe8573@student.uu.se>
To: help-gnu-emacs@gnu.org
Subject: cl-dolist, dolist, cl-return,
Date: Wed, 08 Jul 2015 02:14:51 +0200 [thread overview]
Message-ID: <87fv4za4jo.fsf@nl106-137-147.student.uu.se> (raw)
I just wrote the below code.
`cl-return' works for `cl-dolist', but not for
`dolist' because it hasn't an "implicit nil block ...
established around the loop". And there is no
`return'! I think this "cl-" stuff is confusing.
Anyone cares to explain?
By the way, I know there are one zillion loops
in Lisp. What is the conventional way to
1. iterate a list
2. until some condition is met for some element
3. then break, to speak in C
?
And: With [cl-]dolist, if the list is an expression
and not an atom, does that get evaluated once, or does
it happen every iteration like, say, a string length
test would, again in C?
Also: why isn't there a "neq"?
Keep it up!
;; whole file: http://user.it.uu.se/~embe8573/conf/emacs-init/erc-my.el
(defun neq (a b)
(not (eq a b) ))
(defun erc-kill-buffer-stay ()
"Close the current ERC buffer (e.g., to leave a channel)
but stay in ERC if possible."
(interactive)
(cl-dolist (b (erc-buffer-list))
(when (neq (current-buffer) b)
(erc-cmd-LEAVE "")
(switch-to-buffer b)
(cl-return) )))
--
underground experts united
http://user.it.uu.se/~embe8573
next reply other threads:[~2015-07-08 0:14 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-08 0:14 Emanuel Berg [this message]
2015-07-08 0:31 ` cl-dolist, dolist, cl-return, John Mastro
2015-07-08 3:09 ` Stefan Monnier
2015-07-08 10:25 ` Emanuel Berg
2015-07-08 14:44 ` Stefan Monnier
2015-07-08 23:19 ` Emanuel Berg
2015-07-09 1:49 ` John Mastro
2015-07-09 22:00 ` Emanuel Berg
[not found] ` <mailman.6636.1436479362.904.help-gnu-emacs@gnu.org>
2015-07-10 18:44 ` Barry Margolin
2015-07-11 18:52 ` Emanuel Berg
2015-07-10 16:57 ` Stefan Monnier
2015-07-08 10:23 ` Emanuel Berg
[not found] <mailman.6511.1436314595.904.help-gnu-emacs@gnu.org>
2015-07-08 3:25 ` Pascal J. Bourguignon
2015-07-08 10:17 ` Emanuel Berg
2015-07-08 14:02 ` Drew Adams
2015-07-08 23:10 ` Emanuel Berg
[not found] ` <mailman.6588.1436397019.904.help-gnu-emacs@gnu.org>
2015-07-08 23:56 ` Pascal J. Bourguignon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fv4za4jo.fsf@nl106-137-147.student.uu.se \
--to=embe8573@student.uu.se \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.