From 77583a881b03ce38c8065c40641489fe88b61eb2 Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Sun, 9 Jan 2022 22:55:59 -0800 Subject: Write the linker. --- hash-map.csc | 74 +++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 41 insertions(+), 33 deletions(-) (limited to 'hash-map.csc') diff --git a/hash-map.csc b/hash-map.csc index 2c95b36..01d4158 100644 --- a/hash-map.csc +++ b/hash-map.csc @@ -1,23 +1,24 @@ (define-library (csc hash-map) (export - alist->hash-map + alist->map hash-bytevector - hash-map->alist - hash-map-foreach - hash-map-insert - hash-map-lookup - hash-map? - make-hash-map) + map->alist + for-each + insert + lookup + map? + key-not-found-error? + make-map) (import (scheme base) (only (csc format) sprintf)) (begin (define-record-type - (make-key-hash hash k) + (make-key-hash k hash) key-hash? - (hash key-hash-hash) - (k key-hash-value)) + (k key-hash-value) + (hash key-hash-hash)) (define (key-hash (construct-hash-map hash keyalist m) + (define (map->alist m) (let ((alist '())) - (hash-map-foreach + (for-each (lambda (k v) (set! alist (cons (cons k v) alist))) m) alist)) - (define (alist->hash-map hash keymap hash key