Questions tagged [iteration]
The iteration tag has no usage guidance.
29
questions
1
vote
1
answer
125
views
How to terminate a while loop
I'm not very skilled in elisp, I have only a minimal knowledge of it.
I have to modify an existing function, as I'm trying to fix a problem in an obsolete emacs package that could fulfill my needs.?
(...
0
votes
1
answer
92
views
How to iterate over a sequence of elements?
I want to set the foreground colours for outlines using a list stored in pigment-darkbg. How can I do this in a neat and short way ?
(defun outline-tyface ()
(interactive)
(let ( (pigment-darkbg
...
1
vote
1
answer
47
views
How do you install DoReMi?
I found that DoReMi is a better way of resizing windows in emacs, but DoReMi is not in the Melpa package repository. I looked at the Emacs Wiki and doremi.el was there but I'm not too sure how to use ...
2
votes
0
answers
87
views
why does the Iterator Yield A Different Value?
I tested two similar generators, and the result confused me.
This iterator yields values as I expected:
ELISP> (iter-defun f (x)
(setq x (iter-yield (1+ x)))
(setq x (iter-yield ...
-1
votes
2
answers
35
views
interactively prompt for a list (or regex) rather than just a single item
I have a function to kill buffers matching a given regex:
;; Like kill-matching-buffers, but doesn't prompt every time.
;; TODO: get this to use vertico
(defun kill-matching-buffers-just-do-it ()
&...
0
votes
2
answers
70
views
Iterate over vector (or sequence) and use index and value in conditional
I want to go through the values (0 or 1) of an array, then if entry has value 1, a function is called. But I also want to keep track on which element I am processing.
(defvar selectr [0 1 1 0 0])
...
1
vote
1
answer
42
views
Sample code for events management
I'd like to write a simple loop that catches and prints the incoming event while the script is running. I've tried this:
(let ((key 0))
(while (= key 0)
(setq event (read-...
3
votes
2
answers
125
views
Simple recursive function freezes Emacs — how to correct the definition?
I was trying to familiarize myself with several languages by doing the advent of code exercises in these languages, and one that got me stuck is Emacs Lisp, in the very first exercise.
The goal is to ...
2
votes
1
answer
96
views
Cycling through a list back and forth
I need an interactive function that works like a generator, whenever it is called it should return "next" or "previous" value from a list. Whenever it reaches the end of the list, ...
0
votes
1
answer
55
views
Alternative way to disambiguate "dangling else" in a cl-loop
I need to achieve in a cl-loop the following conditional written in pseudocode.
if (flag1) {
if (flag2) {return ...}
} else {
return ...
}
Note that it is equivalent to
if (flag1 && ...
3
votes
1
answer
91
views
How to distinguish input from the return value of body in while-no-input?
(while-no-input &rest BODY)
Execute BODY only as long as there's no pending input.
If input arrives, that ends the execution of BODY, and while-no-input
returns t. Quitting makes it return nil. ...
2
votes
4
answers
884
views
Equivalent of `continue' in `cl-loop'?
Does the cl-loop macro implement an equivalent to the continue keyword of other languages?
The behavior of break can be achieved by using until or while clauses by placing them in the middle of cl-...
4
votes
2
answers
171
views
How do I splat the arguments to the `or` function?
I would like to evaluate a list of booleans like
(nil nil t)
into a single boolean, such that if any element is true, then the expression evaluates to true.
I first looked at the (or) function in ...
0
votes
2
answers
37
views
Query-replace stops after first item in while
Following this StackOverflow question, I coded this function to clean up text pasted from other sources, such as Google Docs:
(defun sanitize-md ()
"Replace characters."
(interactive &...
3
votes
1
answer
871
views
How to map or iterate over a list of files and set the result to `org-agenda-files`?
looking for a little help with my function. I'm trying to create a loop-while that'll return a list of files back to org-agenda-files. It's just not working though and i keep getting errors. Any ideas ...
3
votes
0
answers
218
views
What kind of destructuring does cl-loop support?
1. Summary
Is it possible to destructure an unordered plist in cl-loop's for-clauses?
2. Details
From the documentation I would have expected destructuring to be universal, e.g. I would have ...
2
votes
1
answer
153
views
Infinite repetition (iteration) in Elisp code
There is an option to
repeat a macro an infinite number of times until the function quits (for example, by reaching the end of the buffer) or if the user cancels the command in keyboard macros
...
12
votes
2
answers
4k
views
How to break out of a dolist loop?
Is it possible to break out of a dolist loop? if not, are there alternatives to dolist that don't involve a while loop and indexing a list?
3
votes
1
answer
556
views
Iterate with both value and index
I want to iterate over a list with both the index and the value in the loop.
Currently, the code looks like this:
(let ((my-list '(a b c)))
(cl-loop for index below (length my-list)
for ...
4
votes
3
answers
229
views
idiomatic way to lexically scope variables in a cl-loop body
Here is some asynchronous code in a cl-loop:
;;; foo.el --- -*- lexical-binding: t; -*-
(let ((my-list '(a b c)))
(cl-loop for index below (length my-list)
...
1
vote
1
answer
115
views
Confusion about iter-defun
I'd like to make an iterator that yields pairs:
(0 1)
(1 1)
(1 2)
(2 2)
(2 3)
(3 3)
etc.
I've tried variants of the following:
(iter-defun iter-rectangle-sizes ()
(let ((rect '(0 1)))
(while ...
2
votes
2
answers
2k
views
Loop through top-level headings in Emacs Org-mode
I want to apply (org-id-get-create) to every top-level heading in the buffer. How can I loop through all top-level org-mode headings in the current buffer?
0
votes
3
answers
803
views
how to do a next in a elisp dotimes loop
By next I mean next as found in ruby/perl/python/etc
#!/usr/bin/ruby
for i in 0..5
if i < 2 then
next
end
puts "Value of local variable is #{i}"
end
3
votes
4
answers
544
views
How to mapcar uneven lists?
I am aware I can use mapcar to join 2 lists into pairs, however all the map functions seem to quit at the shortest list.
This for example
(cl-mapcar #'concat '("1" "2" "3" "4") '("a" "b" "c"))
...
0
votes
1
answer
276
views
Emacs loops mysteriously
I am using emacs 25.3 and I observe that one indentation function that I wrote loop mysteriously. My function goes following:
(defun aut-indent-func ()
(interactive)
(defun loop (begin)
(...
4
votes
2
answers
2k
views
How to loop over every line in a buffer? [duplicate]
I am searching for some kind of reduce function, which loops through every line of a buffer, but I can not find it. Does anybody know the name of such a function?
Something similar to Perl
while (&...
1
vote
1
answer
235
views
Searching for multiple items with occur
I am new to Emacs and I am trying to search for all words entered one by one using 'occur'. I am trying following code:
(defun occurlist (ss)
(interactive "s\Enter list of search items: ")
(...
6
votes
1
answer
204
views
How do I properly populate a function by iterating over an alist?
I've defined a function that is supposed to iterate over an alist, and use the CAR and CDR of each element in the list to populate the regexp in re-search-forward and the replacement string in replace-...
1
vote
2
answers
490
views
Standard emacs lisp function for "collect-if"
Is there a standard emacs-lisp function replacement for
(defun collect-if (PREDICATE LIST)
(loop for el in LIST if (funcall PREDICATE el) collect el))
Example toy application: Extract the odd ...