A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/Wilfred/loop.el below:

Wilfred/loop.el: friendly imperative loop structures for Emacs lisp

loop.el --- friendly imperative loop structures for Emacs lisp

Emacs lisp is missing loop structures familiar to users of newer languages. This library adds a selection of popular loop structures as well as break and continue.

loop.el also has full unit tests.

Table of Contents

Repeatedly evaluate BODY while CONDITION is non-nil.

loop-while (condition body...)

Example:

(let ((x 0)
      (sum 0))
  ;; sum the numbers 0 to 9
  (loop-while (< x 10)
    (setq sum (+ sum x))
    (setq x (1+ x))))

Evaluate BODY, then repeatedly BODY while CONDITION is non-nil.

loop-do-while (condition body...)

Example:

(let ((x 0)
      (sum 0))
  ;; our condition is false on the first iteration
  (loop-do-while (and (> x 0) (< x 10))
    (setq sum (+ sum x))
    (setq x (1+ x))))

Repeatedly evaluate BODY until CONDITION is non-nil.

loop-until (condition body...)

Example:

(let ((x 0)
      (sum 0))
  ;; sum the numbers 0 to 9
  (loop-until (= x 10)
    (setq sum (+ sum x))
    (setq x (1+ x))))

For every item in LIST, evaluate BODY with VAR bound to that item.

Example:

(let ((sum 0))
  (loop-for-each x (list 1 2 3 4 5 6 7 8 9)
    (setq sum (+ sum x))))

For every line in the buffer, put point at the start of the line and execute BODY.

Example:

;; Count headings in a markdown buffer.
(let ((heading-count 0))
  (loop-for-each-line
    (when (looking-at "#")
      (setq heading-count (+ heading 1))))

Terminate evaluation of a loop-while, loop-do-while, loop-for-each, or loop-for-each-line block. If there are nested loops, breaks out of the innermost loop.

loop-break ()

Example:

(let ((sum 0))
  ;; sum the numbers 1 to 5
  (loop-for-each x (list 1 2 3 4 5 6 7 8 9)
    (setq sum (+ sum x))
    (when (= x 5)
      (loop-break)))
  sum)

Skip the rest of the current loop-while, loop-do-while, or loop-for-each block and continue to the next iteration. If there are nested loops, applies to the innermost loop.

loop-continue ()

Example:

(let ((sum 0))
  ;; sum the numbers 1, 3, 4, 5
  (loop-for-each x (list 1 2 3 4 5)
    (when (= x 2)
      (loop-continue))
    (setq sum (+ sum x))))

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4