aboutsummaryrefslogtreecommitdiff
path: root/algebraic-structures.reducible.scm
diff options
context:
space:
mode:
authorMasaya Tojo <masaya@tojo.tokyo>2024-06-15 03:45:15 +0900
committerMasaya Tojo <masaya@tojo.tokyo>2024-06-15 03:45:15 +0900
commit3ab48119dd91fc26fd34c9964538027fa22b460d (patch)
tree787203069d9a3262e8d59c3a84d217a8019d0777 /algebraic-structures.reducible.scm
parent9080b0a664ab36bf271fe042e3dc446727b18eff (diff)
Add reducible
Diffstat (limited to 'algebraic-structures.reducible.scm')
-rw-r--r--algebraic-structures.reducible.scm20
1 files changed, 20 insertions, 0 deletions
diff --git a/algebraic-structures.reducible.scm b/algebraic-structures.reducible.scm
new file mode 100644
index 0000000..ce9d1b3
--- /dev/null
+++ b/algebraic-structures.reducible.scm
@@ -0,0 +1,20 @@
+(functor ((algebraic-structures reducible) (R (reduce)))
+ (reduce
+ maximum
+ minimum)
+ (import scheme
+ R)
+
+ (define (minimum xs less?)
+ (reduce (lambda (e acc)
+ (if (less? e acc)
+ e
+ acc))
+ xs))
+
+ (define (maximum xs less?)
+ (reduce (lambda (e acc)
+ (if (less? e acc)
+ acc
+ e))
+ xs)))