Function: memql

memql is a function defined in fns.c.

Signature

(memql ELT LIST)

Documentation

Return non-nil if ELT is an element of LIST. Comparison done with eql.

The value is actually the tail of LIST whose car is ELT.

Other relevant functions are documented in the list group.

View in manual

Probably introduced at or before Emacs version 22.1.

Shortdoc

;; list
(memql 2.0 '(1.0 2.0 3.0))
    => (2.0 3.0)

Source Code

// Defined in /usr/src/emacs/src/fns.c
{
  Lisp_Object tail = list;

  if (FLOATP (elt))
    {
      FOR_EACH_TAIL (tail)
        {
          Lisp_Object tem = XCAR (tail);
          if (FLOATP (tem) && same_float (elt, tem))
            return tail;
        }
    }
  else if (BIGNUMP (elt))
    {
      FOR_EACH_TAIL (tail)
        {
          Lisp_Object tem = XCAR (tail);
          if (BIGNUMP (tem)
	      && mpz_cmp (*xbignum_val (elt), *xbignum_val (tem)) == 0)
            return tail;
        }
    }
  else
    return Fmemq (elt, list);

  CHECK_LIST_END (tail, list);
  return Qnil;
}