- (hash-let HASH-TABLE (VAR | (VAR) | (VAR KEY [DEFAULT]) ...) BODY ...)syntax
Decompose HASH-TABLE entries into variable bindings. Should the KEY not be a symbol, or the desired variable name VAR is not the key, the (VAR KEY [DEFAULT]) form can be used.
The default value for a missing hash-table entry is #f but can be specified with the (VAR KEY DEFAULT) form.
The BODY... is evaluated with the specified bindings.
(import hash-let (srfi 69)) (let ((tbl (make-hash-table))) ;set! (hash-table-set! tbl 'abc "commercial network") (hash-table-set! tbl "nbc" "commercial network") ;ref (hash-let tbl ((abc) ;key symbol 'abc (cbs "nbc") ;supplied string key (pbs (string-append "p" "bs") #t) ;default value for missing "pbs" tbs) ;missing key symbol 'tbs (print 'abc " is a " abc) (print "cbs" " is a " cbs) (print (string-append "p" "bs") " is a " pbs) (print 'tbs " is a " tbs) ) ) ;=> abc is a commercial network cbs is a commercial network pbs is a #t tbs is a #f