summaryrefslogtreecommitdiff
path: root/models/crop-requirement.rkt
diff options
context:
space:
mode:
authorMarius Peter <dev@marius-peter.com>2025-12-03 21:03:17 +0100
committerMarius Peter <dev@marius-peter.com>2025-12-03 21:03:17 +0100
commit68d6f58c87b54a048fda2bd50c2fdb22ee4abdda (patch)
tree6d53024da1835637a56d0dab437f66c96ea599be /models/crop-requirement.rkt
parent48b3a00cf6313ea96b3557a88a79b12eeb06cdfe (diff)
Fix model modules.
Diffstat (limited to 'models/crop-requirement.rkt')
-rw-r--r--models/crop-requirement.rkt7
1 files changed, 3 insertions, 4 deletions
diff --git a/models/crop-requirement.rkt b/models/crop-requirement.rkt
index 765f3fe..bc02fb5 100644
--- a/models/crop-requirement.rkt
+++ b/models/crop-requirement.rkt
@@ -15,7 +15,7 @@
[get-crop-requirement-value (-> crop-requirement-or-id/c nutrient? maybe-nutrient-value?)]
[delete-crop-requirement! (-> crop-requirement-or-id/c void?)]
[average-crop-requirement-nutrient-values
- (-> (listof (cons/c crop-requirement? (between/c 0 100))) nutrient-value-hash/c)]))
+ (-> (hash/c crop-requirement? (between/c 0 100)) nutrient-value-hash/c)]))
(require racket/contract
db
@@ -150,8 +150,7 @@
;; Helpers
(define (average-crop-requirement-nutrient-values mix)
- (for/fold ([acc (hash)]) ([pair (in-list mix)])
- (match-define (cons crop-requirement percentage) pair)
+ (for/fold ([acc (hash)]) ([(crop-requirement percentage) (in-hash mix)])
(define weight (/ percentage 100))
(for/fold ([acc acc])
([(nutrient value) (in-hash (crop-requirement-nutrient-values crop-requirement))])
@@ -231,7 +230,7 @@
(define cr1 (get-crop-requirement #:profile requirement-profile))
(define cr2 (create-crop-requirement! "Lettuce" (hash nitrogen 100 phosphorus 30)))
- (define mix (list (cons cr1 60) (cons cr2 40)))
+ (define mix (hash cr1 60 cr2 40))
(define avg (average-crop-requirement-nutrient-values mix))
;; 150 * 0.6 + 100 * 0.4 = 90 + 40 = 130
Copyright 2019--2026 Marius PETER