Reading Exercise #4
Due 5:00 PM, Tuesday Feb. 2, 2015

Content of reading exercise #4

  1. Explain what shallow and deep binding are and when they are typically used.
  2. What does it mean for a subroutine (function) to be a first class value? Why do you think that functional languages, such as Haskell, allow functions to be first class values?
  3. What are some benefits of having functions be first class values in a programming language?
  4. What are subroutine and object closures? What are they used for?
  5. What types of language features generally differentiate functional and imperative languages? Why do you think functional languages have these differences?
  6. Compare the eager and lazy evaluation schemes. What are some advantages/disadvantages of both?
  7. What does it mean if we say a language has no side effects? Can you think of some reasons we might prefer such a language over one that does have side effects?
  8. What are IO actions and what purpose do they serve?
  9. Explain the characteristics of scripting languages
  10. Why do you think there is a need for scripting languages when we already have languages like C++, Java, and Haskell?
  11. Compare and contrast five different scripting languages. How are they different and for what tasks might each be best for?