From: Matthias Felleisen (matthias at ccs.neu.edu) Date: Wed May 2 17:16:29 EDT 2012 |
|
I forgot about your desire to remove 0-coefficent terms: (define (add-term a n q) (if (= a 0) q (cons (cons a n) q))) (define (poly-simp p) (define-values (a n q) (for/fold ((a 0) (n 0) (q '())) ((x (sort p < #:key cdr))) (define b (car x)) (define k (cdr x)) (if (= n k) (values (+ a b) n q) (values b k (add-term a n q))))) (add-term a n q))
Posted on the users mailing list. |
|