diff options
| author | 2024-09-27 11:15:35 -0400 | |
|---|---|---|
| committer | 2024-09-27 11:15:35 -0400 | |
| commit | 625fdfeb39c616c37ed4d17be2e3101e0ef2176c (patch) | |
| tree | a25a6cf59a1e5543e46195938f1ed65110b81aba /object.scm | |
| parent | object: rename (diff) | |
Revert "object: rename"
This makes things much slower for questionable benefit. A better
version might use a hash table. A better interpreter would use
some form of partial evaluation to optimize the EQ? chain.
This reverts commit 4acea69841ad62ec5d46eb565bbb5d98f84b3d38.
Diffstat (limited to 'object.scm')
| -rw-r--r-- | object.scm | 16 |
1 files changed, 6 insertions, 10 deletions
@@ -41,7 +41,6 @@ (if (not proc) (error 'object 'invalid-op op args) (apply proc args)))))) - (lambda (op . args) (let ((proc (table 'get op))) (if (not proc) @@ -65,14 +64,11 @@ (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/abstract +(define object/immutable-attributes (lambda args - (object-make-abstract! (apply object/attributes args)))) + (let ((obj (apply object/attributes args))) + (obj 'delete! 'set!) + (obj 'delete! 'get) + (obj 'delete! 'delete!) + obj))) |
