Questions tagged [iteration]

The tag has no usage guidance.

Filter by
Sorted by
Tagged with
2 votes
0 answers
76 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,447
-1 votes
2 answers
25 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
54 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]) ...
  • 89
1 vote
1 answer
35 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-...
2 votes
2 answers
94 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 ...
  • 185
2 votes
1 answer
73 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, ...
  • 1,163
0 votes
1 answer
50 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
86 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. ...
  • 151
1 vote
4 answers
614 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-...
  • 1,531
4 votes
2 answers
141 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
35 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 &...
  • 1,671
3 votes
1 answer
656 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
165 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 ...
  • 1,531
2 votes
1 answer
121 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 ...
  • 755
11 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?
  • 7,989
2 votes
1 answer
336 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
203 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
104 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 ...
1 vote
2 answers
1k 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?
  • 1,837
0 votes
3 answers
717 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
499 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")) ...
  • 553
0 votes
1 answer
257 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) (...
  • 201
3 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,266
1 vote
1 answer
214 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: ") (...
  • 113
6 votes
1 answer
187 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-...
  • 125
1 vote
2 answers
449 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 ...
  • 31.7k