]> git.leonardobizzoni.com Git - ObjectOriented-Prolog-Lisp/commitdiff
Update README.org
authorMetMattone <115347319+MetMattone@users.noreply.github.com>
Wed, 3 Jan 2024 17:12:54 +0000 (18:12 +0100)
committerGitHub <noreply@github.com>
Wed, 3 Jan 2024 17:12:54 +0000 (18:12 +0100)
sex

Prolog/README.org

index 09e20388cb9e7bca3c08ed2db5c498279beef32c..3e6e6127e8be38b8c9f03595a39ae1d9a174a049 100644 (file)
@@ -247,7 +247,7 @@ inst(fb, root). %% false.
 
 * Predicati helper
 ** Predicati dinamici
-Predicati usati con `assert` guarda dove vengono usati e scrivi 2 righe.
+Predicati usati dal metodo /asserta/, svolgono una funzione di controllo per diverse entità.
 
 #+begin_src prolog :tangle oop.pl
 :- dynamic is_class/1.
@@ -324,8 +324,7 @@ add_part(ClassName, [field(Name, Value, Type) | OtherParts]) :-
       add_part(ClassName, OtherParts).
 #+end_src
 
-Se viene dato un `method` allora chiedi a Mirko come funzione sta stregoneria.
-Definiamo nella base di conoscenza un predicato `Name(InstanceName, ArgList)`.
+Se viene dato un `method` allora definiamo nella base di conoscenza un predicato `Name(InstanceName, ArgList)`.
 
 #+begin_src prolog :tangle oop.pl
 add_part(ClassName, [method(Name, ArgList, Body) | OtherParts]) :-
@@ -392,7 +391,12 @@ set_fields(InstanceName, _ClassName, _Fields) :-
 #+end_src
 
 ** Sostituzione del termine `this`
-Magia nera chiedi a Mirko.
+
+Nel primo caso se <Body> è uguale a <OldTerm> restitisci <NewTerm>.
+Nel secondo caso se <Body> è variabile restituiscila.
+Nel terzo caso <Body> viene trasformato in Funtore(BodyArgs), per poi richiamare ricorsivamente gli argomenti di <Body>.
+Infine si ricostruisce <Result> con il predicato univ e viene restituito.
+
 
 #+begin_src prolog :tangle oop.pl
 replace(OldTerm, NewTerm, Body, NewTerm) :- Body == OldTerm, !.