This project is a journey into the application of functional mechanisms, types, and lazy evaluation, offering you a hands-on experience in building a priority queue.
- Apply functional programming mechanisms, including types and lazy evaluation in Haskell.
- Delve into the efficiency of data structures in a functional paradigm.
This project unfolds in three stages, each building on the knowledge gained in the previous weeks. From binary numbers to binomial heaps, you'll discover the beauty of functional solutions.
Get ready by tackling operations on binary numbers. The BinaryNumber module introduces concepts like converting between binary and decimal, incrementing, decrementing, and multiplying binary numbers.
In this stage, immerse yourself in the world of binomial trees and heaps. Discover how to efficiently implement a priority queue using binomial heaps. From inserting elements to finding the minimum priority and merging heaps, this stage will sharpen your functional programming skills.
-
Stage 1: Navigate to the BinaryNumber module, complete the TODOs, and run tests using TestBinaryNumber.
-
Stage 2: Head to the BinomialHeap module, tackle the TODOs, and test your implementations using TestBinomialHeap.