Welcome to the repository for the course Functional Programming and Verification at TUM during the Summer Semester of 2023.
Here, you will find a collection of exercises designed to help you practice and master functional programming concepts. The primary language used for these exercises is Ocaml, a powerful functional programming language.
Please note that all codes in this repository are intended to run on Linux systems.
Feel free to explore the exercises, work on them, and deepen your understanding of functional programming. If you have any questions or need assistance, don't hesitate to reach out.
Victory in Crazy Camel Competition
-
- Pre-defined Constants and Operators
- Pairs, Tuples and Records
- Pattern-matching
-
match
andif
- Lists
- Recursive Functions
-
Week 6: User-defined Datatypes
- Enumeration Types
- Sum Types (constructor)
- Option
-
Week 7: A closer Look at Funcitons (Part One)
- Higher-order Functions
- Anonymous Functions (
$\lambda$ -Calculus)
-
Week 8: A closer Look at Funcitons (Part Two)
- Tail Calls
- Polymorphic Functions and Datatypes
-
Week 9: Practical Features of Ocaml
- Exceptions
- Input and Output as Side-effects
- Sequences
-
Week 10: The Module System of Ocaml
- Modules
- Signatures
- Information Hiding
- Functors
- Separate Compilation
-
- Channels
- Selective Communication
- Threads and Exceptions
- Buffered Communication
- Multicasts
This repository contains a list of various algorithms that I have used. You can explore the code and find implementations for each algorithm to understand their workings better.
- Polynomial
- Quadtree
- Peano Arithmetic
- Y Combinator
- Minimum Spanning Tree (Prim's Algorithm)
- Lagrange Interpolation
- In-Order Traversal (Tail-Recursive)
- Polymorphic Lazy (Infinite) Binary Trees
- Dynamic Programming (0-1 Knapsack)
- Sparse Matrix
- Breadth First Search
- Alpha-Beta Pruning
I am thrilled to share my recent achievement in the challenging Crazy Camel Competition! 🥇
Throughout the competition, I showcased outstanding performance, initially securing the first place and ultimately finishing in the top three. Consistently winning numerous rounds, I accumulated an impressive score.
As you can see from the ranking snapshots above, I consistently maintained a strong position in the contest, which demonstrates my dedication to excellence in strategic thinking and gameplay.
In addition to the satisfaction of victory, I received a well-deserved reward for my efforts. It was a delightful acknowledgment of my dedication and hard work during the contest.
I am excited to share my journey and experiences with you through this repository. My hope is that you can gain valuable insights and knowledge from my achievements and learning process. Feel free to explore the code and resources, and don't hesitate to reach out if you have any questions or want to discuss anything related to the contest or programming in general.
Let's continue this exciting journey of learning and strategic exploration together! Happy coding! 😊