leios / SoME_Topics

Collaboration / Topic requests for SoME
Other
212 stars 6 forks source link

Functional Programming as a paradigm for abstract algebra #89

Open TimeTravelPenguin opened 2 years ago

TimeTravelPenguin commented 2 years ago

About the author

I am a university student, studying a double degree in Mathematics and Computer Science. I am a programmer, working in C#; however, in recent months, have dived deep into the Haskell language and Functional Programming as a whole. Though I am a hobbiest in this language, and still a student at univeristy, I would hope to set up this space to urge others to consider this idea and help educate others

Quick Summary

Functional Programming is a paradigm of programming that is largely dissimilar to imperative Object-Oriented Languages such as C/C++, Java, or C#. Haskell, being an example of a pure functional language, approaches the subject of software development from a very different direction, and in a declarative way.

Haskell and other FP language are rooted in the mathematics of abstract algebra (groups, monoids, monads, functors, etc), and especially Category Theory. I find, however, that although FP languages are increasingly popular, many still fail to see and appreciate the connect between the mathematical structures and the practical applications (such as error handelling, simple computation encapsulation, or concurrency/asynchronous programming).

Another potential areas of interest relate to algorithm complexity analysis of functional languages, which, admittedly, is not something I have looked into, myself.

Target medium

Most existing content for functional languages come from blogs or websites, and conference presentations. Most videos on YouTube are tutorials for lesser topics.

I believe a properly designed product in the form of a video with appropriate animation for mathematics and core software topics would do well as a more interactive medium, being able to show the process of though much better than blogs or videos that are limited to showing only code.

More details

More details can be found on the Haskell Wiki, containing many resources for topics and references.

Resources:

Contact details

You are free to contact me here or on Discord @TimeTravelPenguin#1996. Keep in mind that I am not an expert and am hoping others are able to find interest, and thus collaborate on this together.

Thank you for your time.

TimeTravelPenguin commented 2 years ago

Note: I will update the post when I come across helpful resources that may be of interest, such as youtube videos or blogs with a rather helpful illustration of concepts

DaviesCooper commented 2 years ago

I just finished helping teach a course on this at the University of Calgary and I came to this repo looking specifically to find someone who was willing to work with me on producing content.

I could probably come up with a 20-30 minute scripts fairly easily, I just need content people to help make it presentable.

TimeTravelPenguin commented 2 years ago

I could probably come up with a 20-30 minute scripts fairly easily, I just need content people to help make it presentable.

I was considering making a video, actually. But, depending on my work, I may or may not have time. I'd love to talk more at some point.

DaviesCooper commented 2 years ago

Just sent a discord friend request so we can talk about it some more. ZigZalgo#3510.