progn! is a function alias for block!, defined in
oo-base-macros-progn.el.
Signature
(progn! &rest BODY)
Documentation
Same as cl-block but modify BODY depending on particular forms.
The following describes possible modifications.
- (alet! VALUE)
- (aset! VALUE)
- (aset>! VALUE)
- (aset>>! VALUE)
Let bind the symbol it to VALUE.
- (set! SYM _ [:init EXPR])
Let bind SYM to nil. If :init VAL is specified, let BIND SYM to EXPR.
- (maxing! SYM _ [:init EXPR])
Let bind SYM to least-positive-fixnum.
- (minning! SYM _ [:init EXPR])
Let bind SYM to most-positive-fixnum.
- (counting! SYM _ [:init EXPR])
Let bind SYM to 0.
- (INGMAC SYM VAL [:init EXPR])
INGMAC is a macro ending in "ing!" such as appending!, pushing!,
collecting!, etc.
- (gensym! SYM)
Let bind SYM to nil.
- (wrap! . WRAPPERS)
Surround block body with WRAPPERS. WRAPPERS is as in oo-wrap-forms.
- (with! . WRAPPERS)
Same as wrap!.
- (exclude! . VARS)
Do not let bind any vars in VARS.
- (without! . VARS)
Same as exclude!.
- (stub! NAME ARGS . BODY)
Wrap subsequent forms with (cl-flet ((NAME ARGS . BODY))).
- (nflet! NAME ARGS . BODY)
Wrap subsequent forms with (lef! ((NAME ARGS))).
- (LOOP ...)
Wrap the loop with (catch \=break!) and its body.
with (catch \=continue!)'. LOOP can be for!,
dolist, dolist! or while.
Like cl-block cl-return and cl-return-from work in BODY.
References
References in oo-base-macros-progn.el:
(defmacro lambda! ...)
Find all references Functions used by progn!
Debugging
Enable edebug Enable tracing
Disassemble Forget
Aliases
block!
Alias Source Code
~/.config/emacs/lisp/oo-base-macros-progn.el
(defalias 'progn! 'block!)