diff options
| -rw-r--r-- | src/math.lisp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/math.lisp b/src/math.lisp new file mode 100644 index 0000000..06931ff --- /dev/null +++ b/src/math.lisp @@ -0,0 +1,33 @@ +(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)) |
