Difference between revisions of "Add polynomials"
Jump to navigation
Jump to search
BrettGiles (talk | contribs) m (Add Polynomials moved to Add polynomials) |
m (Remove the incomplete multiply function) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 26: | Line 26: | ||
addManyPolys :: [Poly] -> Poly |
addManyPolys :: [Poly] -> Poly |
||
addManyPolys ps = foldl 0 addPoly ps |
addManyPolys ps = foldl 0 addPoly ps |
||
− | |||
− | multiply :: [Int] -> [Int] -> [Int] |
||
− | --multiply polynomials together. |
||
− | multiply [] ys = ys |
||
− | multiply xs [] = xs |
||
− | multiply ((a,b):xs) ((c,d):ys) |
||
− | |||
main = do |
main = do |
||
− | putStr "Enter a person's name: " |
||
putStr $ show $ addPoly [(0,1),(2,1)] [(0,1)] |
putStr $ show $ addPoly [(0,1),(2,1)] [(0,1)] |
||
</haskell> |
</haskell> |
||
+ | |||
+ | ==See also== |
||
+ | |||
+ | * [[Numeric Prelude]] [http://darcs.haskell.org/numericprelude/src/MathObj/Polynomial.hs] |
||
+ | * HTam [http://darcs.haskell.org/htam/src/Polynomial.hs] |
||
[[Category:Mathematics]] |
[[Category:Mathematics]] |
Latest revision as of 05:07, 3 May 2009
Polynomial Algebra
#!/usr/local/bin/runhugs
module Main where
type Poly = [(Int,Int)]
-- assume sorted by increasing exponent.
-- data Rational = (Poly, Poly)
-- an interesting thing to observe:
-- when adding, the null polynomial is zero.
-- when multiplying it is one. This concept emerges implicitly
-- in these definitions.
addPoly :: Poly -> Poly -> Poly
addPoly [] ys = ys
addPoly xs [] = xs
addPoly ((a,b):xs) ((c,d):ys)
| a == c = ((a,b+d):(addPoly xs ys))
| a < c = ((a,b):(addPoly xs ((c,d):ys)))
| a > c = ((c,d):(addPoly ((a,b):xs) ys))
addManyPolys :: [Poly] -> Poly
addManyPolys ps = foldl 0 addPoly ps
main = do
putStr $ show $ addPoly [(0,1),(2,1)] [(0,1)]
See also
- Numeric Prelude [1]
- HTam [2]