This is a fact profound enough to warrant a footnote, even though it is not strictly relevant to the article. Colloquially, Gödel proved that any logical system capable of expressing arithmetic will contain some number of true statements which are unprovable. Whilst this is obviously consequential for mathematics and philosophy, it also less obviously puts constraints on the kinds of computer programs that can run in a finite number of steps.
 Machine code is the code which is expressed in terms that your computer can understand, and it’s not nice to read. Just as all legal programs can be translated to machine code, all legal functional programs can be translated to an extended form of the lambda calculus (which in turn can be translated to real machine code to run on your PC). Most languages, even functional ones, do not actually do this (opting to cut out the lambda calculus middleman), but it can be done in principle, and a few do take this approach. Regardless of how the computer “really” treats them, the lambda calculus is the theory that supports the grammar of such languages.
 This is a bit of a tautology – “computable” is typically taken to mean anything that a Turing Machine can do with infinite time and resources.
 Note that brackets don’t mean anything special, as they do for f(x) in standard function notation. They just indicate the precedence of function application.
 A word of advice for those who embark on this journey: although the pure lambda calculus does not provide arithmetic or numbers, it can be helpful to pretend they exist to test your intuition.
 Both examples are taken from the Haskell wiki. Rest assured, they have not deliberately made the C code look worse than it needs to be!
 This is one of the reasons that C is such a notoriously hard language to use – programmers can wreak all kinds of havoc with this power. But by the same token, expert C programmers are able to squeeze phenomenal performance out of their code.
 With a few notable exceptions, such as Java (which enforces OOP) and Haskell (which is necessarily purely functional). Some languages also just lack facilities that would make certain paradigms convenient. For example it is very difficult to do any sophisticated functional work in VBA.
 Excel formulas cannot save secret variables in some persistent location, nor can they cause side effects – they can just be evaluated, The Excel formula language is purely functional for this reason.
[viii] Kahneman, D. (2011) Thinking, Fast and Slow. New York: Farrar, Straus and Giroux
[ix] IFoA. (2020), SP5 Investment and Finance Principles: Core Reading
Software Package Training at APR
APR Exam Results September 2021
* “Total” pass rates give the overall (i.e. weighted average) pass rates. IFoA-wide and CAA-wide Total pass rates only include exams which APR students sat.
We hope that all our students had a chance to celebrate over the holidays and that our trend of excellent results continues into 2022 and beyond.
Quantity Street, or why there aren’t any Green Triangles left
This statistic measures how different the actual tin of sweets was from the expected one, with a bigger statistic meaning more differences. If we took a random number from the appropriate chi-squared distribution, it would be this big or bigger about 60% of the time. In other words, assuming that each type of sweet is as common as the next, this distribution for a particular tin isn’t too unusual.
Now, as I mentioned, journalists have started to take an interest in this question, and naturally they’ve asked Nestle how the makeup of each tin is determined. A Nestle spokesperson told the i newspaper in 2018 that each tub is split roughly into thirds according to three categories of sweet, with five different types of chocolates, four different toffees and fudges, and only two types of fruit creme. This gives us an alternative hypothesis to test: that there really are more Strawberry Delights and Orange Cremes than the others, since they are the only ones in their category.
We can re-run the same test as before, but calculating our expected numbers of sweets based on this new theory:
Here, we’ve calculated the expected number of each sweet by allocating 91 / 3 = 30.33 sweets to each of the three categories, and then dividing these equally among the types in that category. The test statistic this time is even lower, at 6.15, suggesting this hypothesis could be a better fit. A random tin would have a test statistic as big as this about 80% of the time, assuming the hypothesis about equal numbers of each category is correct.
Purely in the interests of scholarly research, I popped round to the local supermarket to pick up a tub of Quality Street for myself. My slightly smaller tub had a total of 66 sweets, and I re-ran the previous tests using a combined sample from Stephen Hull’s tin and my tub.
If the sweets were equally distributed, we would get a test statistic of 9.54 or bigger about half of the time, and if they were distributed by category we would get a statistic of 12.55 or bigger about one time in four. These are both definitely plausible.
So, based on this sample size, we can’t conclude much: the distribution might be biased to include equal numbers of each category, or it might not be biased at all. This analysis could be taken further by considering factors like cost, weight or nutritional information of each sweet, which Nestle have also suggested are taken into account in their plans. Alternatively, the same chi-squared tests could tell us more if we bought more tins of sweets to give us a bigger sample size, but since I’ve got a dentist’s appointment in a few weeks, I think I’d better leave it there. I hope you have a happy and peaceful holiday period, and find all your favourite sweets in the tin.
A CogX in the Machine
The changing shape of demand for APR’s services
Chris Bryce explains how the shape of demand for APR’s services has been changing, and how we continue to utilise our staff’s experience to support and deliver for our clients.
Natural Capital is the world’s stocks of natural assets, including water, soil, air and geology. In this article, Alan Reed explores whether this can be accurately calculated, and how this information might be used both by industries and governments.
Gilt yield movements – why the BoE had to intervene
In this article Alan Reed and Sunil Ghosh analyse the recent volatility in gilt yields and shed light on why it was the UK pensions sector that prompted the Bank of England (BoE) to intervene in order to maintain financial stability.
As the 2021-22 Recruitment cycle has been APR’s most fruitful graduate hiring season, Adam Smith gives an insight into the 4-stage process that ensures the recruitment of high quality graduate employees, alongside an overview of the outcomes of this year’s graduate intake.
Understanding the 2022 World Bank Carbon Pricing Report
Climate change is becoming an increasingly talked about issue. This article breaks down the executive summary of The World Bank’s State and Trends of Carbon Pricing report and suggests steps that need to be taken to achieve the 1.5oC target set in the Paris Agreement.
Parametric insurance is a form of insurance that, whilst still relatively uncommon, is gaining greater prominence within the general insurance sector. In this article Rob Givens explains how parametric insurance differs from traditional indemnity insurance and, by way of some example case studies, highlights how it could become an increasingly important tool in dealing with the consequences of climate change.
The April 2022 exam results have been published and APR student staff achieved an 89% pass rate across all IFoA exams taken. In this article, Jack Foley compares our performance with the industry average.
APR recently held a Charity Challenge to raise donations for The Disaster Emergency Committee (DEC) through a virtual mission. In this article, Jenn Claybourn takes a look at the results, the money raised and the important cause this mission was for.