logo

Topic study hub

Functional programming paradigm

Official AQA 7517 section 4.12.1.

0

Objectives

10

Flashcards

10

Questions

90 min

Study time

AqaA LevelComputer ScienceFundamentals of functional programming

Choose a revision tool

Start revising Functional programming paradigm

Syllabus checklist

What you need to know

0 objective pages available

Function type1 objectives
  • Function type: Know that a function, f, has a function type f: A → B (where the type is A → B, A is the argument type, and B is the result type). Know that A is called the domain and B is called the co-domain. Know that the domain and co-domain are always subsets of objects in some data type. Loosely speaking, a function is a rule that, for each element in some set A of inputs, assigns an output chosen from set B, but without necessarily using every member of B. For example, f: {a,b,c,…z} → {0,1,2,…,25} could use the rule that maps a to 0, b to 1, and so on, using all values which are members of set B. The domain is a set from which the function’s input values are chosen. The co-domain is a set from which the function’s output values are chosen. Not all of the co-domain’s members need to be outputs.
First-class object1 objectives
  • First-class object: Know that a function is a first-class object in functional programming languages and in imperative programming languages that support such objects. This means that it can be an argument to another function as well as the result of a function call. First-class objects (or values) are objects which may: • appear in expressions • be assigned to a variable • be assigned as arguments • be returned in function calls. For example, integers, floating-point values, characters and strings are first class objects in many programming languages.
Function application1 objectives
  • Function application: Know that function application means a function applied to its arguments. The process of giving particular inputs to a function is called function application, for example add(3,4) represents the application of the function add to integer arguments 3 and 4. The type of the function is f: integer x integer → integer where integer x integer is the Cartesian product of the set integer with itself. Although we would say that function f takes two arguments, in fact it takes only one argument, which is a pair, for example (3,4).
Partial function application1 objectives
  • Partial function application: Know what is meant by partial function application for one, two and three argument functions and be able to use the notations shown opposite. The function add takes two integers as arguments and gives an integer as a result. Viewed as follows in the partial function application scheme: add: integer → (integer → integer) add 4 returns a function which when applied to another integer adds 4 to that integer. The brackets may be dropped so function add becomes add: integer → integer → integer The function add is now viewed as taking one argument after another and returning a result of data type integer. 92
Composition of functions1 objectives
  • Composition of functions: Know what is meant by composition of functions. The operation functional composition combines two functions to get a new function. Given two functions f: A → B g: B → C function g ○ f, called the composition of g and f, is a function whose domain is A and co-domain is C. If the domain and co-domains of f and g are ℝ, and f(x) = (x + 2) and g(y) = y3. Then g ○ f = (x + 2)3 f is applied first and then g is applied to the result returned by f.

Key terms

DomainCo-domainFirst-class objectFirst-class functionFunction applicationCartesian productPartial function applicationFunction type notationComposition of functions

Exam tips

  • Read the arrow notation carefully: For f: A → B, remember that A is the domain and argument type, while B is the co-domain and result type.
  • State the permitted operations precisely: When defining a first-class object, remember the four actions: it can appear in an expression, be assigned to a variable, be assigned as an argument, and be returned in a function call.

Common mistakes

  • Assuming every co-domain member must be an output: The co-domain is the set from which outputs are chosen. It may contain members that the function never uses.
  • Assuming first-class objects are only functions: Functions can be first-class objects, but the specification also gives integers, floating-point values, characters and strings as examples of first-class values in many programming languages.

Practice preview

Continue by objective

Objectives are grouped by subtopic so students can jump straight to the exact skill they want to revise.

Related topics

Study nearby topics next