| The behavior of set seems a bit strange to me: This happens because "and" macroexpands to a symbol and "or" expands to a fn.  It also happens because macro processing goes through a special case (ac-setn/ac-macex) if the macro is in the first position of a "set".  And "set" macroexpands but doesn't evaluate the argument.  arc> (set (and a) 42)
  42
  arc> (set (or b) 42)
  Error: "First arg to set must be a symbol ((fn (gs1439) (if gs1439 gs1439 (or))) b)"
 I don't think this is a bug per se, but this behavior bothers me.  It seems to expose details of how the arguments are implemented.  (This isn't tied to "and" and "or" specifically; they are just examples.) Does anyone else think this behavior is strange? |