Dear Dimitris,
In short:
defun is to define a function
defmethod is to define a method.
Now what’s the difference between a function and a method in CLOS:
A function will apply an operation on its argument without taking into account the type of its argument.
A method, on the contrary will apply an operation on its argument depending on the type of its argument.
Example:
the function + applies addition on the elements of its argument and here the arguments are simple numbers (integers float ratio etc.) BUT not lists!
om+ method (there are four of them) applies:
om+ number number
om+ list number
om+ number list
om+ list list
Meaning om+ is “intelligent” and has a method for each type combination of its arguments.
I hope this short anf fast explanation is helpfull
See here for functions:
https://lisp-lang.org/learn/functions
here for methods:
https://lisp-lang.org/learn/clos
Best
K