From e8f6f8d3aa516b4154dd9832bf50de82ddb07840 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Mon, 30 Nov 2015 07:43:00 -0800 Subject: defun can define methods. * eval.c (op_defun): Handle (meth type name) syntax in place of name via sys:defmeth function, which is dynamically resolved and autoloaded as necessary. (builtin_reject_test): When defun is being checked, recognize a (method ...) form and allow it. * struct.h (meth_s): Declaration added. * txr.1: Documented new defun capability. --- txr.1 | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'txr.1') diff --git a/txr.1 b/txr.1 index 163c7745..9ff4b35f 100644 --- a/txr.1 +++ b/txr.1 @@ -10932,6 +10932,30 @@ and .code nil may not be used as function names. Neither can keyword symbols. +It is possible to define methods with +.codn defun , +as an alternative to the +.code defmeth +macro. + +To define a method, the syntax +.cblk +.meti (meth < type << name ) +.cble +should be used as the argument to the +.meta name +parameter. + +The syntax +.cblk +.meti (defun (meth type name) args forms) +.cble +is equivalent to the +.cblk +.meti (defmeth type name args forms) +.cble +syntax. + .TP* "Dialect Note:" In ANSI Common Lisp, keywords may be used as function names. In TXR Lisp, they may not. -- cgit v1.2.3