summaryrefslogtreecommitdiff
path: root/models/crop-requirement.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'models/crop-requirement.rkt')
-rw-r--r--models/crop-requirement.rkt17
1 files changed, 17 insertions, 0 deletions
diff --git a/models/crop-requirement.rkt b/models/crop-requirement.rkt
index 4faa6bb..23740e7 100644
--- a/models/crop-requirement.rkt
+++ b/models/crop-requirement.rkt
@@ -143,3 +143,20 @@
(query-exec (current-conn)
(delete #:from crop_requirements
#:where (= id ,id))))
+
+
+;; Helpers
+
+(define (average-crop-requirement-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))])
+ (match-define (cons n v) nv)
+ (hash-update acc n
+ (λ (old) (+ old (* v percentage)))
+ (λ () (* v percentage))))))
+ (for/list ([(n v) (in-hash average-values)])
+ (cons n v)))
Copyright 2019--2026 Marius PETER