
The old 'HashTable' type is now the union of the other 3 hash types. - all operations that used to work on 'HashTable's still work, but some now have more specific outputs - `#hash` literals have type `ImmutableHash` - `immutable?` and `hash-weak?` are filters - `Mutable-` and `Weak-` hashes have corresponding `Top` types, `HashTableTop` is now a union - the contact for `(U (Immutable-Hash K1 V1) (Mutable-Hash K2 V2))` is ONE `hash/c` Minor notes: - renamed internal identifiers containing 'Hashtable' to all use 'HashTable' - add Racket guide/reference 'secref' functions
17 lines
273 B
Racket
17 lines
273 B
Racket
#lang typed/scheme
|
|
|
|
(: table (Immutable-HashTable Integer (-> Integer)))
|
|
(define table
|
|
(make-immutable-hash null))
|
|
|
|
(: lookup (Integer -> Integer))
|
|
(define (lookup n)
|
|
|
|
(: thunk (-> Integer))
|
|
(define thunk
|
|
(hash-ref table n (lambda () n)))
|
|
|
|
(thunk))
|
|
|
|
(lookup 1)
|