Brian Alliet Programming Skills This is all ridiculously overengineered for this assignment but just about all this code is reuseable and should come in handy later. syntax.scm: A few syntax-rules that aid in writing other syntax-rules match.scm: A simple syntax-rules based pattern matching facility prelude.scm: A bunch of handy functions (many based on functions in the Haskell Prelude) listcomp.scm: Haskell style list comprehensions list.scm: A few handy functions for working with lists (based on Haskell's List module) monad.scm: An implementatin of several monads, generic monad functions, and the dictionaries that make it all happen io.scm: An (incomplete) implementation of Haskell's IO monad using the above interface. hw1.scm: The actual assignment All these files need to be loaded into your Scheme interpreter for hw1.scm to run. (Actually if you get rid of the main function in hw1 you don't need the monad or io stuff). > ,load syntax.scm > ,load match.scm > ,load prelude.scm > ,load listcomp.scm > ,load list.scm > ,load monad.scm > ,load io.scm > ,load hw1.scm > (perms 4) ... > (permute '(1 2 3 4)) ... > -Brian