]> git.leonardobizzoni.com Git - ObjectOriented-Prolog-Lisp/commitdiff
Fixato passaggio di parametri ad un metodo
authorLeonardoBizzoni <leo2002714@gmail.com>
Wed, 20 Dec 2023 19:54:19 +0000 (20:54 +0100)
committerLeonardoBizzoni <leo2002714@gmail.com>
Wed, 20 Dec 2023 19:54:19 +0000 (20:54 +0100)
Prolog/README.org
Prolog/oop.pl

index 9b22483b4036e5fed07d4841522bc4f92c083864..1812694bb2485d7aff49593ca3a7e7f70a3b9292 100644 (file)
@@ -211,7 +211,7 @@ add_part(ClassName, [method(Name, ArgList, Body) | OtherParts]) :-
     asserta(is_member(method(Name, ArgList, Body), ClassName)),
 
     Fn =.. [Name, Instance | ArgList],
-    asserta(Fn :- call_method(Instance, ClassName, ArgList, Body)),
+    asserta(Fn :- call_method(Instance, ClassName, Body)),
 
     add_part(ClassName, OtherParts).
 #+end_src
@@ -273,10 +273,9 @@ define_this([=(Key, Value) | Other]) :-
 
 ** call_method
 #+begin_src prolog :tangle oop.pl
-call_method(Instance, ClassName, ArgList, Body) :-
+call_method(Instance, ClassName, Body) :-
     is_instance(Instance, ClassName),
     define_this(Instance),
-    maplist(call, [Body | ArgList]),
-    !,
+    call(Body),
     retractall(field(this, _, _)).
 #+end_src
index 06bcfda5d09b5b27504232d84ca4c3f7d73215eb..9cf206387255d62784de79093dfc0736137d7957 100644 (file)
@@ -154,7 +154,7 @@ add_part(ClassName, [method(Name, ArgList, Body) | OtherParts]) :-
     asserta(is_member(method(Name, ArgList, Body), ClassName)),
 
     Fn =.. [Name, Instance | ArgList],
-    asserta(Fn :- call_method(Instance, ClassName, ArgList, Body)),
+    asserta(Fn :- call_method(Instance, ClassName, Body)),
 
     add_part(ClassName, OtherParts).
 
@@ -201,9 +201,8 @@ define_this([=(Key, Value) | Other]) :-
     asserta(field(this, Key, Value)),
     define_this(Other).
 
-call_method(Instance, ClassName, ArgList, Body) :-
+call_method(Instance, ClassName, Body) :-
     is_instance(Instance, ClassName),
     define_this(Instance),
-    maplist(call, [Body | ArgList]),
-    !,
+    call(Body),
     retractall(field(this, _, _)).