En aquest tema, explorarem les tuples i les estructures en Prolog. Aquestes són eines fonamentals per representar dades complexes i organitzar informació de manera eficient.

Què són les Tuples i les Estructures?

Tuples

Una tuple és una col·lecció ordenada d'elements que poden ser de diferents tipus. En Prolog, les tuples no són una entitat separada com en altres llenguatges de programació, però es poden representar utilitzant llistes o estructures.

Estructures

Les estructures en Prolog són una manera de representar dades complexes mitjançant termes compostos. Una estructura consta d'un functor (nom de l'estructura) i un nombre fix d'arguments.

Sintaxi:

functor(arg1, arg2, ..., argN).

Exemple:

persona(nom, edat, ciutat).

Creació d'Estructures

Definició d'Estructures

Per definir una estructura, simplement escrivim el functor seguit dels seus arguments.

Exemple:

cotxe(ford, mustang, 1967).

Accés als Elements d'una Estructura

Per accedir als elements d'una estructura, utilitzem patrons de coincidència (pattern matching).

Exemple:

% Definim una estructura de cotxe
cotxe(ford, mustang, 1967).

% Accedim als elements de l'estructura
obtenir_marca(Cotxe, Marca) :-
    Cotxe = cotxe(Marca, _, _).

obtenir_model(Cotxe, Model) :-
    Cotxe = cotxe(_, Model, _).

obtenir_any(Cotxe, Any) :-
    Cotxe = cotxe(_, _, Any).

Modificació d'Estructures

Per modificar una estructura, creem una nova estructura amb els valors desitjats.

Exemple:

% Modifiquem l'any d'un cotxe
modificar_any(Cotxe, NouAny, CotxeModificat) :-
    Cotxe = cotxe(Marca, Model, _),
    CotxeModificat = cotxe(Marca, Model, NouAny).

Exemples Pràctics

Exemple 1: Representació d'una Persona

% Definim una estructura de persona
persona(nom, edat, ciutat).

% Exemple de persona
persona(john, 30, barcelona).

% Accedim als elements de la persona
obtenir_nom(Persona, Nom) :-
    Persona = persona(Nom, _, _).

obtenir_edat(Persona, Edat) :-
    Persona = persona(_, Edat, _).

obtenir_ciutat(Persona, Ciutat) :-
    Persona = persona(_, _, Ciutat).

Exemple 2: Representació d'un Llibre

% Definim una estructura de llibre
llibre(titol, autor, any).

% Exemple de llibre
llibre('El Quixot', cervantes, 1605).

% Accedim als elements del llibre
obtenir_titol(Llibre, Titol) :-
    Llibre = llibre(Titol, _, _).

obtenir_autor(Llibre, Autor) :-
    Llibre = llibre(_, Autor, _).

obtenir_any(Llibre, Any) :-
    Llibre = llibre(_, _, Any).

Exercicis Pràctics

Exercici 1: Definició i Accés a Estructures

  1. Defineix una estructura animal amb els arguments nom, especie i edat.
  2. Crea una instància de l'estructura animal per a un gos anomenat Rex de 5 anys.
  3. Escriu una funció per obtenir el nom de l'animal.
  4. Escriu una funció per obtenir l'espècie de l'animal.
  5. Escriu una funció per obtenir l'edat de l'animal.

Solució:

% Definició de l'estructura animal
animal(nom, especie, edat).

% Instància de l'estructura animal
animal(rex, gos, 5).

% Funcions per accedir als elements de l'animal
obtenir_nom(Animal, Nom) :-
    Animal = animal(Nom, _, _).

obtenir_especie(Animal, Especie) :-
    Animal = animal(_, Especie, _).

obtenir_edat(Animal, Edat) :-
    Animal = animal(_, _, Edat).

Exercici 2: Modificació d'Estructures

  1. Defineix una estructura cotxe amb els arguments marca, model i any.
  2. Crea una instància de l'estructura cotxe per a un Toyota Corolla de l'any 2010.
  3. Escriu una funció per modificar l'any del cotxe a 2020.

Solució:

% Definició de l'estructura cotxe
cotxe(marca, model, any).

% Instància de l'estructura cotxe
cotxe(toyota, corolla, 2010).

% Funció per modificar l'any del cotxe
modificar_any(Cotxe, NouAny, CotxeModificat) :-
    Cotxe = cotxe(Marca, Model, _),
    CotxeModificat = cotxe(Marca, Model, NouAny).

Resum

En aquest tema, hem après a:

  • Definir i utilitzar estructures en Prolog.
  • Accedir als elements d'una estructura.
  • Modificar estructures creant noves instàncies amb els valors desitjats.

Les estructures són una eina poderosa per organitzar i gestionar dades complexes en Prolog. Amb la pràctica, esdeveniràs més còmode treballant amb elles i podràs representar informació de manera més eficient i clara.

© Copyright 2024. Tots els drets reservats