From 73f6e38e7c01f919972226ae83eebe96b2cf3310 Mon Sep 17 00:00:00 2001 From: MetMattone <115347319+MetMattone@users.noreply.github.com> Date: Mon, 1 Jan 2024 18:35:46 +0100 Subject: [PATCH] sex modifiche a field, fieldx e make --- Prolog/README.org | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/Prolog/README.org b/Prolog/README.org index 5018533..5cc6d1c 100644 --- a/Prolog/README.org +++ b/Prolog/README.org @@ -129,10 +129,13 @@ Istanzia una classe dato: - la classe da istanziare - una lista di `assegnamenti` -Sostanzialmente craiamo il costruttore della classe. -Un costruttore è un elemento in un linguaggio di programmazione utilizzato per inizializzare un oggetto di una classe. -Viene chiamato automaticamente al momento della creazione dell'oggetto, -garantendo che l'oggetto sia in uno stato coerente e pronto per l'uso, assegnando valori iniziali ai suoi attributi. +Sostanzialmente craiamo il costruttore della classe. + +Se l'istanza non ha allora si crea un istanza con una lista vuota. +Se abbiamo il campo dobbiamo prima controllare che non esista già la stessa istanza. +Se esiste non si procede con l'operazione, in quanto rindondante, in caso contrario si passa alla creazione effettiva del metodo. +Se fallisce la creazione del metodo si elimanano le eventuali informazioni residue dalla base di conoscenza. + *** Implementazione #+begin_src prolog :tangle oop.pl @@ -181,10 +184,10 @@ make(Instance, bar, [bar = "69"]). %% Instance = b; false. ** field *** Definizione -Estrae il valore di una classe da un campo +Estrae il valore di una classe da un campo. -Questa funzione svolge lo stesso compito di un getter, -ovvero una funzione che fornisce un modo controllato per accedere al valore di un attributo all'interno di una classe. +Questa funzione svolge lo stesso compito di un getter, +ovvero una funzione che fornisce un modo controllato per accedere al valore di un attributo, all'interno di una classe. *** Implementazione #+begin_src prolog :tangle oop.pl @@ -202,14 +205,10 @@ field(root, value, X). %% X = 200 ** fieldx *** Definizione -Estrae il valore dalla classe percorrendo una catena di attributi(?) - +Estrae il valore dalla classe percorrendo una catena di attributi. Il caso base del metodo è quando + è una lista formata da un solo elemento, con un field possiamo estrattre l'ultimo (e solo) valore di + - Se + ha più elementi possiamo richiamare il metodo ricorsivamente sulla coda della lista finchè la lista non avrà un solo elemento riportandoci al caso base. -(spero sia coretto non ci ho capito molto) - *** Implementazione #+begin_src prolog :tangle oop.pl fieldx(Instance, [FieldName], Res) :- -- 2.52.0