Most chosen general qualifications exam board in England.

  • About AQA

  • Centre Services

  • Join Us

  • Contact Us

AQA
  • Subjects
  • Qualifications
  • Professional Development
  • Exams Admin
  • Services
  • Search
  • Subjects

  • Qualifications

  • Professional Development

  • Exams Admin

  • Services

  • About AQA

  • Centre Services

  • Join Us

  • Contact Us

  • Log in

Subjects

  • Accounting

  • Art and Design

  • Biology

  • Business

  • Chemistry

  • Computer Science

  • Dance

  • Design and Technology

  • Drama

  • Economics

  • English

  • Food preparation and Nutrition

  • French

  • Geography

  • German

  • History

  • Law

  • Mathematics

  • Media Studies

  • Music

  • Physical Education

  • Physics

  • Politics

  • Psychology

  • Religious Studies

  • Science

  • Sociology

  • Spanish

  • All subjects

GCSEs

  • Biology (8461)

  • Chemistry (8462)

  • Combined Science: Trilogy (8464)

  • English Language (8700)

  • English Literature (8702)

  • Geography (8035)

  • History (8145)

  • Mathematics (8300)

  • See all GCSEs

AS and A-levels

  • Biology (7402)

  • Business (7138)

  • Chemistry (7405)

  • Geography (7037)

  • History (7042)

  • Physics (7408)

  • Psychology (7182)

  • Sociology (7192)

  • See all AS and A-Levels

Other qualifications

  • Applied Generals

  • AQA Certificate Mathematics

  • Entry Level Certificates

  • Project Qualifications

  • Unit Award Scheme

  • All qualifications

Our training

  • Course finder

  • About our training

  • Online training

  • Face-to-face training

  • In-school training

  • Inside assessment

Courses by theme

  • Preparing for exams

  • Unit Award Scheme

Courses by subject

  • English

  • Mathematics

  • Science

  • Languages

  • Design and Technology

  • Physical Education

  • Geography

  • History

  • All professional development

Dates

  • Dates and timetables

  • Key dates

Non-exam assessment (NEA)

  • NEA, coursework and controlled assessment

  • Deadlines for non-exam assessment

  • Record forms

  • Submit marks

Exams

  • Entries

  • Entry fees

  • Exams guidance

  • Question papers and stationery

  • Access arrangements

  • Special consideration

Results

  • Results days

  • Results slips

  • Grade boundaries

  • Results statistics

  • Post-results services

  • Exam certificates

  • All Exams Admin

Assessment Services

  • Centre Services

  • Associate Extranet

  • Become an associate

Products

  • All About Maths

  • Alpha Plus

  • Data Insights

  • Exampro

  • Project Q

  • Stride Maths

  • Testbase

  • Unit Award Scheme

News and Insights

  • AQI research and insight

  • News

  • Inside Exams Podcast

  • Exam Officer Podcast

  1. Home
  2. Subjects
  3. Computer Science
  4. A-level Computer Science

A-level Computer Science7517

SpecificationPlanning resourcesTeaching resourcesAssessment resourcesKey dates
1.0 Introduction
2.0 Specification at a glance
4.0 Subject content – A-level
4.1 Fundamentals of programming
4.2 Fundamentals of data structures
4.3 Fundamentals of algorithms
4.4 Theory of computation
4.5 Fundamentals of data representation
4.6 Fundamentals of computer systems
4.7 Fundamentals of computer organisation and architecture
4.8 Consequences of uses of computing
4.9 Fundamentals of communication and networking
4.10 Fundamentals of databases
4.11 Big Data
4.12 Fundamentals of functional programming
4.13 Systematic approach to problem solving
4.14 Non-exam assessment - the computing practical project
5.0 Scheme of assessment
6.0 Non-exam assessment administration
7.0 General administration
AS and A-level Computer Science Specification Specifications for first teaching in 2015

AS and A-level Computer Science Specification Specifications for first teaching in 2015

21 Jan 2019

PDF | 1.31 MB

4.12 Fundamentals of functional programming

4.12.1 Functional programming paradigm

4.12.1.1 Function type

Content

Additional information

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.

4.12.1.2 First-class object

Content

Additional information

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.

4.12.1.3 Function application

Content

Additional information

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).

4.12.1.4 Partial function application

Content

Additional information

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 .

4.12.1.5 Composition of functions

Content

Additional information

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) = y 3 . Then

g ○ f = (x + 2) 3

f is applied first and then g is applied to the result returned by f .

4.12.2 Writing functional programs

4.12.2.1 Functional language programs

Content

Additional information

Show experience of constructing simple programs in a functional programming language.

The following is a list of functional programming languages that could be used:

  • Haskell
  • Standard ML
  • Scheme
  • Lisp.

Other languages with built-in support for programming in a functional paradigm as well as other paradigms are:

  • Python
  • F#
  • C#
  • Scala
  • Java 8
  • Delphi XE versions onwards
  • VB.NET 2008 onwards.

Higher-order functions.

A function is higher-order if it takes a function as an argument or returns a function as a result, or does both.

Have experience of using the following in a functional programming language:

  • map
  • filter
  • reduce or fold.

map is the name of a higher-order function that applies a given function to each element of a list, returning a list of results.

filter is the name of a higher-order function that processes a data structure, typically a list, in some order to produce a new data structure containing exactly those elements of the original data structure that match a given condition.

reduce or fold is the name of a higher-order function which reduces a list of values to a single value by repeatedly applying a combining function to the list values.

4.12.3 Lists in functional programming

4.12.3.1 List processing

Content

Additional information

Be familiar with representing a list as a concatenation of a head and a tail.

Know that the head is an element of a list and the tail is a list.

Know that a list can be empty.

Describe and apply the following operations:

  • return head of list
  • return tail of list
  • test for empty list
  • return length of list
  • construct an empty list
  • prepend an item to a list
  • append an item to a list.

Have experience writing programs for the list operations mentioned above in a functional programming language or in a language with support for the functional paradigm.

For example, in Haskell the list [4, 3, 5] can be written in the form head:tail where head is the first item in the list and tail is the remainder of the list. In the example, we have 4:[3, 5]. We call 4 the head of the list and [3, 5] the tail .

[] is the empty list .

4.11 Big Data
4.13 Systematic approach to problem solving
AQA
  • Become an examiner
  • Switch to AQA
  • Contact Us
  • Join us
  • Terms and conditions
  • Accessibility
  • Modern slavery statement
  • Privacy notice
  • Cookie notice
  • X
  • LinkedIn
  • Youtube

©AQA 2025 | Company number: 03644723 | Registered office: Devas Street, Manchester, M15 6EX | AQA is not responsible for the content of external sites

AQA Education has obtained an injunction preventing interference with public examinations. This notice is to alert you to the injunction, so that you are aware of it and can make submissions about it if you wish to do so.