From: kier-mirko Date: Tue, 2 Jan 2024 10:13:32 +0000 (+0100) Subject: Aggiunto is-instance X-Git-Url: http://git.leonardobizzoni.com/?a=commitdiff_plain;h=fc5e6c9137e72f624c1ba53e6c3a412366ce4a75;p=ObjectOriented-Prolog-Lisp Aggiunto is-instance --- diff --git a/Lisp/README.org b/Lisp/README.org index 84fa528..f400565 100644 --- a/Lisp/README.org +++ b/Lisp/README.org @@ -223,6 +223,14 @@ nil)) #+end_src +** Controlla se il simbolo passato è un'instance della class +#+begin_src lisp :tanble ool.lisp +(defun is-instance (instance class-name) + (if (eq (getf instance :classname) class-name) + T + NIL)) +#+end_src + ** Controllo tipo valore #+begin_src lisp :tangle ool.lisp (defun type-check-fields (fields) diff --git a/Lisp/ool.lisp b/Lisp/ool.lisp index c16e33b..72fb14a 100644 --- a/Lisp/ool.lisp +++ b/Lisp/ool.lisp @@ -157,6 +157,11 @@ (class-spec name) nil)) +(defun is-instance (instance class-name) + (if (eq (getf instance :classname) class-name) + T + NIL)) + (defun type-check-fields (fields) (cond ((null fields) nil) (t (type-check-field (car fields))