aboutsummaryrefslogtreecommitdiff
path: root/algebraic-structures.group.scm
diff options
context:
space:
mode:
authorMasaya Tojo <masaya@tojo.tokyo>2024-06-13 02:11:07 +0900
committerMasaya Tojo <masaya@tojo.tokyo>2024-06-13 02:11:07 +0900
commitca1584a5c87c2952af08c74ce80b1cb2a75a1d19 (patch)
tree6a6f5ebde7bb00f8bd74501ecac563c5a1dc51f6 /algebraic-structures.group.scm
parent653b204b583da363a97464960a00f1bd0dbed865 (diff)
Rename modules from (<feature name> ... make) to (<feature name>)
Diffstat (limited to 'algebraic-structures.group.scm')
-rw-r--r--algebraic-structures.group.scm16
1 files changed, 16 insertions, 0 deletions
diff --git a/algebraic-structures.group.scm b/algebraic-structures.group.scm
new file mode 100644
index 0000000..6e38eaf
--- /dev/null
+++ b/algebraic-structures.group.scm
@@ -0,0 +1,16 @@
+(functor ((algebraic-structures group) (M (<> unit inv)))
+ (<> unit inv pow)
+ (import M
+ scheme
+ (chicken base))
+
+ (define (pow x n)
+ (assert (exact-integer? n))
+ (if (negative? n)
+ (pow (inv x) (- n))
+ (let loop ((i n)
+ (acc unit))
+ (if (= i 0)
+ acc
+ (loop (sub1 i)
+ (<> acc x)))))))