(in-package senzill.math) (defmacro % (number divisor) "Different name for the mod function" `(mod ,number ,divisor)) (defmacro op= (operation value &rest others) "Executes operation on all values and stores result in first argument" `(setf ,value (apply ,operation ,value ',others))) (defmacro += (value &rest numbers) "Sums all numbers and stores result in name (first argument)" `(op= '+ ,value ,@numbers)) (defmacro ++_ (value) "Adds increments value by one" `(+= ,value 1)) (defmacro -= (value &rest numbers) "Adds all numbers and stores result in name (first argument)" `(op= '- ,value ,@numbers)) (defmacro -- (value) "Decrements value by one" `(-= ,value 1)) (defmacro /= (value &rest numbers) "Divides all numbers and stores result in name (first argument)" `(op= '/ ,value ,@numbers)) (defmacro *= (value &rest numbers) "Multiplies all numbers and stores result in name (first argument)" `(op= '* ,value ,@numbers))