GNU Info

Info Node: (emacs-lisp-intro.info)progn

(emacs-lisp-intro.info)progn


Next: Summing up zap-to-char Prev: search-forward Up: zap-to-char
Enter node , (file) or (file)node

The `progn' Special Form
------------------------

   `progn' is a special form that causes each of its arguments to be
evaluated in sequence and then returns the value of the last one.  The
preceding expressions are evaluated only for the side effects they
perform.  The values produced by them are discarded.

   The template for a `progn' expression is very simple:

     (progn
       BODY...)

   In `zap-to-char', the `progn' expression has to do two things: put
point in exactly the right position; and return the location of point
so that `kill-region' will know how far to kill to.

   The first argument to the `progn' is `search-forward'.  When
`search-forward' finds the string, the function leaves point
immediately after the last character in the target string.  (In this
case the target string is just one character long.)  If the search is
backwards, `search-forward' leaves point just before the first
character in the target.  The movement of point is a side effect.

   The second and last argument to `progn' is the expression `(point)'.
This expression returns the value of point, which in this case will be
the location to which it has been moved by `search-forward'.  This
value is returned by the `progn' expression and is passed to
`kill-region' as `kill-region''s second argument.


automatically generated by info2www version 1.2.2.9