From 256d385f7413656783491122e8010a3073a5b4bb Mon Sep 17 00:00:00 2001 From: LeonardoBizzoni Date: Thu, 11 Jan 2024 20:40:18 +0100 Subject: [PATCH] Errori grammaticali --- Prolog/README.org | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Prolog/README.org b/Prolog/README.org index 1168eab..c7087fb 100644 --- a/Prolog/README.org +++ b/Prolog/README.org @@ -178,7 +178,7 @@ Questo predicato sfrutta il potente meccanismo di back-tracking di Prolog per cercare di unificare la variabile /InstanceName/ con un'istanza della classe /ClassName/ che, se la lista di "assegnamenti" non è nulla, abbia i valori dei field specificati. -/Naturalmente se non si ha nessun "assegmaneto" allora InstanceName/ +/Naturalmente se non si ha nessun "assegnamento" allora InstanceName/ /unifica con tutte e sole le istanze della classe specificata./ *** Implementazione @@ -279,7 +279,7 @@ fieldx(fb, [foo,bar,foobar], Result). ** inst *** Definizione -Dato il nome con cui è stata create l'istanza restituisce l'istanza +Dato il nome con cui è stata creata l'istanza restituisce l'istanza stessa. Dato che nella nostra implementazione la creazione di un'istanza è la @@ -476,7 +476,7 @@ Predicato utilizzato per sostituire l'atomo /this/ con la vera istanza. Dato un predicato /Body/ questo viene separato nei suoi termini costituenti (/funtore e argomenti/) e *per ogni* argomento richiama la /replace/. In questo modo possiamo cercare l'atomo da sostituire anche all'interno di -termini composti come chimate di funzioni. +termini composti come chiamate di funzioni. #+begin_src prolog :tangle oop.pl replace(OldTerm, NewTerm, Body, NewTerm) :- Body == OldTerm, !. @@ -537,9 +537,9 @@ type_check(ClassName, Instance) :- Predicato utilizzato per la definizione della classe ricevuta da [[*def_class][def_class]]. Dato che questa funzione utilizza /assert*/ per modificare la -base di conoscenza, se dovessore verificarsi degli errori queste -modifica rimarrebbero presenti. -Per ciò non è consigliato utilizzare /def_class/ al suo posto. +base di conoscenza, se dovessero verificarsi degli errori queste +modifiche rimarrebbero presenti. +Perciò non è consigliato utilizzare /def_class/ al suo posto. Prima di aggiungere le informazioni della nuova classe alla base di conoscenza vengono ereditate tutte le parti (/field e metodi/) @@ -561,12 +561,12 @@ wrapped_def_class(ClassName, Parents, Parts) :- add_part(ClassName, Parts). #+end_src -*** Ereditazione di /parts/ da superclassi +*** Ereditarietà di /parts/ da superclassi Viene svolto inizialmente lo stesso controllo del [[*Effettivo predicato `def_class`][predicato precedente]] con l'aggiunta del controllo sul primo genitore nella lista di genitori. Se questo non è una classe allora non possiamo ereditare niente! -Dopo di chè creiamo una relazione tra il genitore e la classe figlio +Dopodiche creiamo una relazione tra il genitore e la classe figlio che creerà una gerarchia di classi utile nel [[*Controllo dei tipi][controllo dei tipi]]. Questo permette ad un'istanza della classe figlio di accedere *direttamente* ad ogni campo/metodo definito da una @@ -591,7 +591,7 @@ set_superclass(ClassName, [Parent | OtherParents]) :- add_part(ClassName, ParentParts). #+end_src -** Istanziazione di una classe +** Creazione di una classe *** Effettivo predicato `make` Dato un atomo per /InstanceName/ possiamo procedere alla creazione di un'istanza creando una relazione tra quest'atomo -- 2.52.0