Je veux trouver le prix d'un nouvel article basé sur les prix moyens d'articles similaires. La fonction get-k-similar utilise k-Nearest Neighbors mais me renvoie cette sortie ((list rating age price) proximity)
.Comment écrire la fonction Moyenne pour cette structure de données dans Scheme/Lisp?
For example, 2-similar would be:
(((5.557799748150248 3 117.94262493533647) . 3.6956648993026904)
((3.0921378389849963 7 75.61492560596851) . 5.117886776721699))
J'ai besoin de trouver le prix moyen des articles similaires. Moyenne de 117 et 75. Y a-t-il une meilleure façon de itérer? Ma fonction est trop moche.
(define (get-prices new-item)
(define (average-prices a-list)
(/ (cdr
(foldl (λ(x y) (cons (list 0 0 0)
(+ (third (car x)) (third (car y)))))
(cons (list 0 0 0) 0)
a-list))
(length a-list)))
(let ((similar-items (get-k-similar new-item)))
(average-prices similar-items)))
J'ai pris la liberté d'indenter correctement votre code. Je ne peux pas imaginer que cela produit quelque chose de significatif. – Svante