Concepts of Programming Languages

(Sean Pound) #1
Review Questions 721

familiar syntax for describing sets. Unlike ML and Scheme, Haskell is a pure
functional language.
F# is a .NET programming language that supports functional and impera-
tive programming, including object-oriented programming. Its functional pro-
gramming core is based on OCaml, a descendent of ML and Haskell. F# is
supported by an elaborate widely used IDE. It also interoperates with other
.NET languages and has access to the .NET class library.

BIBLIOGRAPHIC NOTES


The first published version of LISP can be found in McCarthy (1960). A widely
used version from the mid-1960s until the late 1970s is described in McCarthy
et al. (1965) and Weissman (1967). Common LISP is described in Steele (1990).
The Scheme language is described in Dybvig (2003). ML is defined in Milner
et al. (1990). Ullman (1998) is an excellent introductory textbook for ML.
Programming in Haskell is introduced in Thompson (1999). F# is described
in Syme et al. (2010).
The Scheme programs in this chapter were developed using DrRacket’s
legacy language R5RS.
A rigorous discussion of functional programming in general can be found
in Henderson (1980). The process of implementing functional languages
through graph reduction is discussed in detail in Peyton Jones (1987).

REVIEW QUESTIONS



  1. Define functional form, simple list, bound variable, and referential
    transparency.

  2. What does a lambda expression specify?

  3. What data types were parts of the original LISP?

  4. In what common data structure are LISP lists normally stored?

  5. Explain why QUOTE is needed for a parameter that is a data list.

  6. What is a simple list?

  7. What does the abbreviation REPL stand for?

  8. What are the three parameters to IF?

  9. What are the differences between =, EQ?, EQV?, and EQUAL?

  10. What are the differences between the evaluation method used for the
    Scheme special form DEFINE and that used for its primitive functions?

  11. What are the two forms of DEFINE?

  12. Describe the syntax and semantics of COND.

Free download pdf