Function: and

and is a special form defined in eval.c.

Signature

(and CONDITIONS...)

Documentation

Eval args until one of them yields nil, then return nil.

The remaining args are not evalled at all. If no arg yields nil, return the last arg's value.

View in manual

Probably introduced at or before Emacs version 19.1.

Source Code

// Defined in /usr/src/emacs/src/eval.c
{
  Lisp_Object val = Qt;

  while (CONSP (args))
    {
      Lisp_Object arg = XCAR (args);
      args = XCDR (args);
      val = eval_sub (arg);
      if (NILP (val))
	break;
    }

  return val;
}