parents))
#+end_src
-*** Ereditazione dai genitori
-Il problema dell'ereditazione dei campi, metodi e genitori dei genitori
+*** Ereditarietà dei genitori
+Il problema dell'ereditarietà dei campi, metodi e genitori dei genitori
viene risolto unendo le informazioni relative alla classe figlio
con quelle del primo genitore nella lista e procedendo ricorsivamente.
#+end_src
*** Creazione di metodi
-Predicato utilizzato per define i metodi di una classe.
+Predicato utilizzato per definire i metodi di una classe.
La definizione di un metodo viene effettuata tramite la creazione di una
funzione "metodo" il cui nome corrisponde al nome del metodo da creare,
prende degli argomenti in ingresso capitanati dall'istanza su cui chiamare
#+end_src
** Stabilire se un simbolo è un'istanza
-Il conportamente di questo predicato varia in base agli argomenti
+Il comportamento di questo predicato varia in base agli argomenti
che gli vengono dati.
Se viene dato solo un argomento allora il predicato deve stabilire se
Il secondo caso viene utilizzato principalmente durante la creazione di
una classe principalmente per controllare che tutti i field definiti siano
del tipo corretto.
-In particolare, dato che un field può essere sia una tupla /(name value)/ che
+In particolare, dato che un field può essere sia una coppia /(name value)/ che
una tripla /(name value type)/, nel caso in cui /field/ non sia dotato di un
tipo non si ha la necessità di effettuare alcun controllo
su di esso, il /field/ avrà quindi un tipo /dinamico/.
Viceversa se il /field/ è dotato di tipo, esso potrà essere:
- un tipo implementato da lisp, dove il controllo del tipo del valore
- viene svolta dalla funzione nativa /typep/
+ viene svolto dalla funzione nativa /typep/
- una classe, dove il valore deve essere un'istanza della classe stessa
#+begin_src lisp :tangle ool.lisp