# X

`(xchg 'var 'var ..) -> any`
  Exchange the values of successive `var` argument pairs. See also `swap` and `set`.

      : (setq  A 1  B 2  C '(a b c))
      -> (a b c)
      : (xchg  'A C  'B (cdr C))
      -> 2
      : A
      -> a
      : B
      -> b
      : C
      -> (1 2 c)

`(xor 'any 'any) -> flg`
  Returns T if exactly one of the arguments evaluates to non-`NIL`.

      : (xor T NIL)
      -> T
      : (xor T T)
      -> NIL

`(x| 'num ..) -> num`
  Returns the bitwise `XOR` of all `num` arguments. When one of the arguments evaluates to `NIL`, it is returned immediately. See also `&`, `|` and `bit?`.

      : (x| 2 7)
      -> 5
      : (x| 2 7 1)
      -> 4