diff options
Diffstat (limited to 'models/crop-requirement.rkt')
| -rw-r--r-- | models/crop-requirement.rkt | 7 |
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 |