diff options
Diffstat (limited to 'share')
-rw-r--r-- | share/txr/stdlib/struct.tl | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/share/txr/stdlib/struct.tl b/share/txr/stdlib/struct.tl index 7213d9eb..34e9bb07 100644 --- a/share/txr/stdlib/struct.tl +++ b/share/txr/stdlib/struct.tl @@ -193,3 +193,10 @@ (defmacro umeth (slot) ^(umethod ',slot)) + +(defmacro defmeth (type-sym name arglist . body) + ^(progn + (static-slot-ensure (find-struct-type ',type-sym) ',name + (lambda ,arglist + (block ,name ,*body))) + ',name)) |