Reading Exercise #4
Due 5:00 PM, Tuesday Feb. 2, 2015
Content of reading exercise #4
- Explain what shallow and deep binding are and when they are typically used.
- 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?
- What are some benefits of having functions be first class values in a programming language?
- What are subroutine and object closures? What are they used for?
- What types of language features generally differentiate functional and imperative languages? Why do you think functional languages have these differences?
- Compare the eager and lazy evaluation schemes. What are some advantages/disadvantages of both?
- 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?
- What are IO actions and what purpose do they serve?
- Explain the characteristics of scripting languages
- Why do you think there is a need for scripting languages when we already have languages like C++, Java, and Haskell?
- Compare and contrast five different scripting languages. How are they different and for what tasks might each be best for?