A macro that creates an arbitrary-arity macro given a binary function and associates the function name with the macro name using add-macro-fn.
Examples: (make-n-ary-macro set-union binary-set-union nil t) (make-n-ary-macro ^ expt 1) General Form: (make-n-ary-macro new-macro-name binary-fun-name identity right-associate-p)
where
Given one argument, the macro will just return that argument. Given more than one argument, the macro will expand to a right-associated call of the function. For example:
(set-union) expands to nil (set-union arg1) expands to arg1 (set-union arg1 arg2) expands to (binary-set-union arg1 arg2) (set-union arg1 arg2 arg3) expands to (binary-set-union arg1 (binary-set-union arg2 arg3)) and so on.