summaryrefslogtreecommitdiff
path: root/handlers.rkt
diff options
context:
space:
mode:
authorMarius Peter <dev@marius-peter.com>2025-11-13 16:14:07 +0100
committerMarius Peter <dev@marius-peter.com>2025-11-13 16:14:07 +0100
commit36b3bd1009e5cbd8545b6abbb5988c00d7274c15 (patch)
tree6b7458ae1e00554822ac6a2d459627745fb260a2 /handlers.rkt
parentb39788725ef3980711b3206335e44dc67dd27fda (diff)
Factor out average-crop-requirement-nutrient-values.
Diffstat (limited to 'handlers.rkt')
-rw-r--r--handlers.rkt19
1 files changed, 2 insertions, 17 deletions
diff --git a/handlers.rkt b/handlers.rkt
index a5c9d6b..a4de123 100644
--- a/handlers.rkt
+++ b/handlers.rkt
@@ -70,23 +70,8 @@
(define (create-target req)
(define-values (effective-on crop-requirement-mix)
(formlet-process (targets-formlet) req))
-
- (define (average-nutrient-values mix)
- (define average-values
- (for/fold ([acc (hash)]) ([pair (in-list mix)])
- (define crop-requirement (car pair))
- (define percentage (/ (cdr pair) 100))
- (for/fold ([acc acc])
- ([nv (in-list (get-crop-requirement-values crop-requirement))])
- (define n (car nv))
- (define v (cdr nv))
- (hash-update acc n
- (λ (old) (+ old (* v percentage)))
- (λ () (* v percentage))))))
- (for/list ([(k v) (in-hash average-values)])
- (cons k v)))
-
- (define target-nutrient-values (average-nutrient-values crop-requirement-mix))
+ (define target-nutrient-values
+ (average-crop-requirement-nutrient-values crop-requirement-mix))
(create-nutrient-target! effective-on target-nutrient-values)
(redirect-to "/"))
Copyright 2019--2026 Marius PETER