Go to the previous, next section.

The  progn Function

 progn is a function 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@dots{})

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.

Go to the previous, next section.