RosettaCodeData/Task/Formal-power-series/Clojure/formal-power-series-1.clj
Ingy döt Net db842d013d A-M baby
2013-04-10 21:29:02 -07:00

8 lines
312 B
Clojure

(defn ps+ [ps0 ps1]
(letfn [(+zs [ps] (concat ps (repeat :z)))
(notz? [a] (not= :z a))
(nval [a] (if (notz? a) a 0))
(z+ [a0 a1] (if (= :z a0 a1) :z (+ (nval a0) (nval a1))))]
(take-while notz? (map z+ (+zs ps0) (+zs ps1)))))
(defn ps- [ps0 ps1] (ps+ ps0 (map - ps1)))