Skip to main content

CS404: Programming Languages

Page path
  • Home /
  • Courses /
  • Course Catalog /
  • Computer Science /
  • CS404: Programming Languages /
  • Unit 3: Functional Programming
Back to course 'CS404: Programming Languages'
  • Unit 3: Functional Programming

    Functional programming is not used very frequently in the industry, yet it is very powerful. Functional programming treats computation as the evaluation of mathematical functions. Functional programming languages are deeply rooted in lambda calculus.

    Whereas older Functional Programming languages were typically designed with a specific purpose in mind, newer Functional Programming languages are more "general purpose" and are more widely applicable. In this unit, we will discuss Functional Programming's place in the programming languages world, first taking a look at exactly what constitutes a Functional Programming language. We will conclude the unit with a discussion of some of the more prevalent features in Functional Programming. By the end of this unit, you will be able to identify Functional Programming languages and, more importantly, instances in which a Functional Programming language would be most beneficial.

    Completing this unit should take you approximately 21 hours.

    • Unit 3 Learning Outcomes Page
    • 3.1: Overview

      •  Haskell Wiki: "Functional Programming” URL

        Read this article, which gives an overview of functional programming.

      • University of California, Berkeley: Brian Harvey's "Functional Programming" Page

        Watch these lectures for an overview of functional programming.

    • 3.2: Higher-order Functions

      • University of California, Berkeley: Brian Harvey's "Higher-Order Procedures" Page

        Watch this lecture for examples of higher-order functions and procedures in functional programming.

    • 3.3: Pure Functional Functions

      •  Paul Hudak, John Peterson, and Joseph Fasel's "Values, Types, and Other Goodies" URL

        Read this page about values and types in Haskell.

      •  Paul Hudak, John Peterson, and Joseph Fasel's "Functions" URL

        Read this page about functions in Haskell.

    • 3.4: Real Languages: Haskell

      •  University of Texas at Austin: Thomas Dillig's "Real programming languages: Haskell" URL

        Read this overview of Haskell, a major functional programming language.

    • 3.5: MapReduce

      •  Ralf Lammel's "Google's MapReduce Programming Model - Revisited" URL

        Read this article, which gives an overview of the famous MapReduce algorithm invented by Google and its implementation in Haskell.

    • Unit 3 Assessment

      •  Unit 3 Assessment Quiz

        Please take this assessment to check your understanding of the materials presented in this unit.

        Notes:

        • There is no minimum required score to pass this assessment, and your score on this assessment will not factor into your overall course grade.
        • This assessment is designed to prepare you for the Final Exam that will determine your course grade. Upon submission of your assessment you will be provided with the correct answers and/or other feedback meant to help in your understanding of the topics being assessed.
        • You may attempt this assessment as many times as needed, whenever you would like.

Navigation

Art History
Biology
Business Administration
Chemistry
Communication
Economics
English
History
Mathematics

Creative Commons License
© Saylor Academy 2010-2018 except as otherwise noted. Excluding course final exams, content authored by Saylor Academy is available under a Creative Commons Attribution 3.0 Unported license. Third-party materials are the copyright of their respective owners and shared under various licenses. See www.saylor.org/open/licensinginformation for detailed licensing information.

Saylor Academy and Saylor.org® are trade names of the Constitution Foundation, a 501(c)(3) organization through which our educational activities are conducted.

Terms of Use | Privacy Policy