Functional Programming was an interesting module that improved my coding skills, after writing code in an imperative style for the last number of years it was good to experience software development in a functional way. This was done using the F# programming language as it meant that the learning experience could be taught more productive, but this has its disadvantage as it could allow for impetrative code to be wrote if I wasn’t careful. As this is a computer science topic it really added more quality to my degree.
Functional techniques have been developed but some parts of this paradigm I was already aware of such as recursion and immutability. I already knew these from my previous programming experience and in mathematics. Pattern matching, monads and higher order functions were introduced and these techniques have made me think about how they could be used in the software development industry and data science. I learnt the basics of the lambda calculus and type system, after my studies I have been conducting more research into type theory using lambda.