Haskell
Haskell was the first programming language that I learned at Imperial College London, it was also the first functional programming language that I have learned. All of my significant projects in haskell so far are assignments set by my university, in order to enforce academic integrity, I cannot publicly share the code to my programming tasks, however, it may be available upon request. Some of the projects that I have created are described in more detail below.
1. Macroprocessor
This was one of my first projects in haskell, here I was asked to create a macroprocessor (also known as a preprocessor). This was to be achieved with the use of recursive list processing. To do this, we needed to find a way to split up a string based on specific characters, this then allowed us to use wildcards to split up a string based on these expressions. Then, by providing a string that contains 'keyword-value' pairs, we could then insert the values into the string and ergo process it to produce the desired result.

At the end of the project, I had gained some familiarity with haskell syntax as well as recursion.
2. Calculus
In this project, I was asked to use abstract syntax trees as well as symbolic computations in order to evaluate mathematical operations such as differentiation and maclaurin series calculations for polynomials as well as trigonometric and logarithmic functions. This was achieved through the use of type classes as well as the use of the Haskell 'Maybe' data type. These evaluations would also be nested in one another so there would need to be ways of applying rules such as the chain rule and the product rule.

At the end of the project, I gained familiarity with the Haskell syntax as well as the use of type classes. I also learnt how to recurse over abstract data structures such as a mathematical expression.