- Overview
- Dependencies
- Cloning the Repository
- Compiling and Running
- Group's Report
- Conclusion
- Developed by
This project is a culmination of our efforts in the "Cálculo de Programas" subject at the University of Minho, completed during the first semester of the third year of the Software Engineering degree program. In this project, we have applied our knowledge of Haskell programming and functional programming concepts to solve a series of programming problems. These problems encompass various aspects of functional programming, including list manipulation, recursion, higher-order functions, and monads. Our goal is to demonstrate proficiency in applying functional programming techniques to solve real-world problems while adhering to principles of simplicity, elegance, and clarity in our solutions.
For further information about the project, including detailed explanations, instructions, and solutions, please refer to the Project Report.
To run and work with this project, you will need the following dependencies:
-
Haskell Compiler (GHC): The Glasgow Haskell Compiler is required to compile and run Haskell programs. You can download it from the official Haskell Platform website.
-
lhs2TeX: This tool is used to convert literate Haskell files (.lhs) into LaTeX documents (.tex), which can then be compiled into PDFs. You can install lhs2TeX using your system's package manager or by downloading it from the lhs2TeX GitHub repository.
-
Docker: Docker is recommended for simplifying the setup and execution of the project. You can install Docker by following the instructions provided on the official Docker website. Once Docker is installed, refer to Section B in the report for detailed instructions on using Docker containers to compile and run the Haskell code.
Once you have installed these dependencies, you'll be able to compile and run the Haskell programs provided in this project.
To clone the repository, run the following command in your terminal:
$ git clone https://github.com/JoaoCoelho2003/CP.git
Once cloned, navigate to the repository directory using the cd command:
$ cd CP
The specifics about the compiling and running processes are explained in great detail in the report. You can find comprehensive instructions in Section B Docker
. We recommend referring to that section for detailed guidance on compiling Haskell code and running the project using Docker containers.
The group has prepared a comprehensive report that outlines their solutions to each problem presented in the project. In the report, each problem is thoroughly explained, including the approach taken to solve it, the reasoning behind the solutions, and any relevant code snippets. The report provides valuable insights into the thought process and problem-solving techniques employed by the students.
For detailed explanations and solutions to the project's problems, please refer to the group's report. The report contains all the necessary instructions and information for understanding and reproducing the project's work.
The section where the students' solutions are located can be found under the heading Soluções dos alunos
within the report.
We trust that delving into this project has been both enlightening and fulfilling for you. Throughout this journey, we've explored various concepts in functional programming and problem-solving techniques, providing valuable insights into the world of Haskell programming.
By thoroughly analyzing and implementing solutions to the presented problems, we've deepened our understanding of functional programming principles and honed our skills in Haskell. Through documentation and explanation, we've strived to share our thought processes and methodologies, contributing to the collective knowledge in the field.
If you have any inquiries, recommendations, or feedback, please feel free to get in touch. Your insights are invaluable to us as we continue to explore, learn, and enhance our skills in programming and problem-solving. Happy coding!
A100596 João Coelho
A100692 José Rodrigues
A100764 Duarte Ribeiro