aboutsummaryrefslogtreecommitdiff
path: root/algebraic-structures.reducible.scm
diff options
context:
space:
mode:
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)))