Make up or extra credit assignment

Download the file "fibonacci.hs".

Your work product here is a Haskell program that looks at the command line arguments and computes the fibonacci value for each numerical argument given.

All that you need to do is to write a function called "fibonacci_wrapper" which you should use to replace the comment section. (And, yes, if you want to write this as two functions instead, please feel free to do so.)

However, instead of this being an executable script like previous assignments, this time you should use the Glasgow Haskell compiler "ghc" to compile your program into a binary:

     % ghc fibonacci.hs 
     [1 of 1] Compiling Main             ( fibonacci.hs, fibonacci.o )
     Linking fibonacci ...
     % ./fibonacci 10 12 15
     fibonacci 10 is 55
     fibonacci 12 is 144
     fibonacci 15 is 610

Your Haskell fibonnaci_wrapper function will need to do the map stage (or another equivalent programming metaphor, although I personally think that map is the most appropriate metaphor here). I suggest using mapM_ for your equivalent map function since you only want the side-effect of output.

Anytime that you work with Haskell, you will find that its type system is the most important thing to consider; programming in Haskell, is, more than anything else, an exercise in understanding its underlying type system. If you use the ghci interpreter (it's not necessary for this very simple exercise, but it is a lot of fun to experiment with), the ":t" command can be quite useful.

Probably the best reference source for Haskell is the excellent website "Learn You a Haskell for Great Good!" at which has a fine tutorial on using Haskell.

Please submit this on Blackboard under the "Assignment-MakeUp" link or "Assignment-ExtraCredit" link. If you use the first, I will replace your lowest graded assignment with the grade for this assignment. If you use the latter, I will give you 1 point of extra credit on the semester. (If you submit on both, I will do whatever seems to me to improve your final grade the most.)