diff options
| author | 2024-09-27 11:16:22 -0400 | |
|---|---|---|
| committer | 2024-09-27 11:16:22 -0400 | |
| commit | ba26544bec78e491c7836da4f7438739ce0a8935 (patch) | |
| tree | b06bed159a4f3df5fbd0f6a58243494657ae21df /set.scm | |
| parent | Revert "object: rename" (diff) | |
Revert "object: change to a stateful table"
This reverts commit 3c34c4a5a7253df4417420bf276a78f8e9e1969b.
Diffstat (limited to 'set.scm')
| -rw-r--r-- | set.scm | 36 |
1 files changed, 0 insertions, 36 deletions
@@ -467,42 +467,6 @@ smap pairs))) -;;; SYMBOL-TABLE: -;;; -;;; A stateful map from symbols to values. -;;; -;;; (SET! KEY VAL) -;;; (DELETE! KEY) -;;; (GET KEY) -;;; (TYPE) -(define symbol-table - (lambda () - (let ((table '())) - (letrec ((insert! - (lambda (key val) - (let ((ret (smap:insert table - (symbol->string key) - val))) - (set! table (car ret)) - (cdr ret)))) - (delete! (lambda (key) (smap:delete table (symbol->string - key)))) - (search - (lambda (key . default) - (let ((ret (smap:search table (symbol->string key)))) - (if (null? ret) - (if (null? default) - #f - (car default)) - (map:val ret)))))) - (lambda (op . args) - (cond - ((eq? op 'set!) (apply insert! args)) - ((eq? op 'delete!) (apply delete! args)) - ((eq? op 'get) (apply search args)) - ((eq? op 'type) 'symbol-table) - (else (error 'symbol-table 'unknown op args)))))))) - ;;; ;;;;; ;;; Tests ;;; ;;;;; |
