Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

↻ /prog/ Challenge [Vol. λfx.f x] ↻

Name: Anonymous 2011-02-13 12:14

THE CHALLENGE: Write a program that, given a number n, prints the expansion of (a+b)^n.

Example: 4a^4 + 4a^3b + 6a^2b^2 + 4ab^3 + b^4

HOWEVER: You must do the above in a language you do not have any experience with. Never programmed in Haskell before? Gather some documentation and go for it.

(Well, you're advised to do that. I can't possibly know whether or not you know a programming language.)

Name: Anonymous 2011-02-15 8:47

import System
import Data.List

pascalsTriangle = iterate (\l -> zipWith (+) (0:l) (l++[0])) [1]

aPlusBToTheNthPower n =
    intercalate " + " $ foldl1 (zipWith (++))
        ["": (map show $ init $ tail $ pascalsTriangle !! n) ++ [""], powers "a",
                                                                      reverse $ powers "b"]
    where powers variable =
              "": variable: map ((variable ++) . ('^':) . show) [2..n] 

main =
    do [n] <- getArgs
       print $ aPlusBToTheNthPower $ read n

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List