summaryrefslogtreecommitdiff
path: root/Lisp/method-invocation.lisp
diff options
context:
space:
mode:
authorMatthias Benkard <code@mail.matthias.benkard.de>2008-02-03 09:58:17 +0100
committerMatthias Benkard <code@mail.matthias.benkard.de>2008-02-03 09:58:17 +0100
commitd24eda3f5a8093cd5e3316453f170de659c75586 (patch)
tree4e3db7361c6cc955b6dbbf71b76e2c27e09e8ad9 /Lisp/method-invocation.lisp
parent3c76a7cf93c20e14d9bc8d6895d8f886e6e2bc44 (diff)
Update documentation.
darcs-hash:af9cfdb8adda53a3459722f8156c54a3d31bfaf1
Diffstat (limited to 'Lisp/method-invocation.lisp')
-rw-r--r--Lisp/method-invocation.lisp15
1 files changed, 15 insertions, 0 deletions
diff --git a/Lisp/method-invocation.lisp b/Lisp/method-invocation.lisp
index c0bad01..9aae94d 100644
--- a/Lisp/method-invocation.lisp
+++ b/Lisp/method-invocation.lisp
@@ -108,6 +108,20 @@ separating parts by hyphens works nicely in all of the `:INVERT`,
*modern mode*.
+## Note 2:
+
+Instead of using __invoke__, which is neither macro-friendly nor very
+useful for method selection at run-time, you may **funcall** selectors
+directly. Naturally, __apply__ works as well.
+
+The following calls are all equivalent:
+
+ (invoke-by-name instance \"stringWithCString:encoding:\" \"Mulk.\" 4)
+ (invoke instance :string-with-c-string \"Mulk.\" :encoding 4)
+ (funcall (selector \"stringWithCString:encoding:\") instance \"Mulk.\" 4)
+ (apply (selector \"stringWithCString:encoding:\") (list instance \"Mulk.\" 4))
+
+
## See also:
__invoke-by-name__"
@@ -168,6 +182,7 @@ are all equivalent:
In fact, using __invoke-by-name__ is discouraged in favour of the latter
form.
+
## Rationale:
Whereas __invoke__ tries to make writing as well as reading method