diff options
| -rw-r--r-- | models/crop-requirement.rkt | 7 | ||||
| -rw-r--r-- | models/crop-rotation.rkt | 1 | ||||
| -rw-r--r-- | models/fertilizer-product.rkt | 2 |
3 files changed, 5 insertions, 5 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 diff --git a/models/crop-rotation.rkt b/models/crop-rotation.rkt index 1033b8e..37c242f 100644 --- a/models/crop-rotation.rkt +++ b/models/crop-rotation.rkt @@ -59,6 +59,7 @@ (define (residuals->requirement-proportion-hash residuals) (for/hash ([r (in-list residuals)]) (match-define (vector requirement-id proportion) r) + ;; TODO: Fix this N+1 query problem. (values (get-crop-requirement #:id requirement-id) proportion))) (define (grouped-row->crop-rotation grouped-row) diff --git a/models/fertilizer-product.rkt b/models/fertilizer-product.rkt index 9427844..7c1ca54 100644 --- a/models/fertilizer-product.rkt +++ b/models/fertilizer-product.rkt @@ -3,7 +3,7 @@ (provide fertilizer-product fertilizer-product? fertilizer-product-id - (rename-out [fertilizer-product-canonical-name fertilizer-name] + (rename-out [fertilizer-product-canonical-name fertilizer-product-name] [fertilizer-product-nutrient-values fertilizer-product-values] [fertilizer-product-brand-name fertilizer-brand-name]) (contract-out |