Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

Languages and Programming Environments (LAP) - NOVA FCT 🐫

Bachelor in Computer Science and Engineering (LEI) | 2nd Year - 2nd Semester

This repository contains the functional programming projects developed for the Languages and Programming Environments (Linguagens e Ambientes de Programação) course at the Faculty of Sciences and Technology of the NOVA University of Lisbon (NOVA FCT).

✍️ Authors

  • Tomás Alves (Student No. 68681) - Projects 1,2 & 3
  • Miguel Carmo (Student No. 65871) - Projects 2 & 3

📌 About the Course and Projects

The LAP course introduces different programming paradigms, with a very strong focus on Functional Programming using OCaml. It covers advanced recursion, higher-order functions, algebraic data types, and immutable data structures.

The repository is divided into two main folders containing the different projects:

1. Project 1: Bullseye (Darts Game) 🎯

  • Type: Individual Project
  • Description: A functional application built to simulate and calculate scores for a game of Darts ("Bullseye"). It involves validating dart board hits, calculating round scores, and determining game states using pure functional logic.
  • Documentation:
  • Location:

2. Projects 2 & 3: Petri Nets Simulation 🕸️

  • Type: Group Project
  • Description: Implementation of a simulator for Petri Nets. The project models places, transitions, and token distribution mathematically. It calculates the evolution of the net state by verifying transition conditions and executing valid firings.
  • Documentation:
  • Location:

🧠 Concepts and Acquired Skills

  • Functional Programming: Deep understanding of the functional paradigm, avoiding mutable state and side effects.
  • OCaml & Dune: Mastery of the OCaml language syntax, type inference system, and the dune build system.
  • Algebraic Data Types & Pattern Matching: Designing complex data structures and handling them safely with exhaustive pattern matching.
  • Higher-Order Functions & Recursion: Processing collections and states using map, fold, filter, and tail-recursive functions.
  • Mathematical Modeling: Translating mathematical models (like Petri Nets) into programmatic functional logic.

📄 License

Copyright © 2026 Alvesss04. All Rights Reserved.

About

FCT NOVA - LAP - Ambient and Languages of Programming (Linguagens e Ambientes de Programação)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages