aboutsummaryrefslogtreecommitdiffstats
path: root/object.scm
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2024-09-26 21:52:51 -0400
committerGravatar Peter McGoron 2024-09-26 21:52:51 -0400
commit4acea69841ad62ec5d46eb565bbb5d98f84b3d38 (patch)
treefdc8b8a096c5dfbed8a29db006fe9a8106a5656a /object.scm
parentobject: change to a stateful table (diff)
object: rename
Diffstat (limited to 'object.scm')
-rw-r--r--object.scm16
1 files changed, 10 insertions, 6 deletions
diff --git a/object.scm b/object.scm
index d30574d..6728661 100644
--- a/object.scm
+++ b/object.scm
@@ -41,6 +41,7 @@
(if (not proc)
(error 'object 'invalid-op op args)
(apply proc args))))))
+
(lambda (op . args)
(let ((proc (table 'get op)))
(if (not proc)
@@ -64,11 +65,14 @@
(apply process-args args)))))
(apply check-args args)))))
+(define object-make-abstract!
+ (lambda (obj)
+ (obj 'delete! 'set!)
+ (obj 'delete! 'get)
+ (obj 'delete! 'delete!)
+ obj))
+
;;; Like OBJECT/ATTRIBUTES, but with SET!, GET, and DELETE! removed.
-(define object/immutable-attributes
+(define object/abstract
(lambda args
- (let ((obj (apply object/attributes args)))
- (obj 'delete! 'set!)
- (obj 'delete! 'get)
- (obj 'delete! 'delete!)
- obj)))
+ (object-make-abstract! (apply object/attributes args))))