racket/collects/web-server/bindings.ss
Jay McCarthy fa67303a75 pr 8028 and 8029
svn: r3347
2006-06-13 14:48:34 +00:00

27 lines
934 B
Scheme

(module bindings mzscheme
(require (lib "list.ss"))
(provide extract-binding/single
extract-bindings
exists-binding?)
; extract-binding/single : sym (listof (cons str str)) -> str
(define (extract-binding/single name bindings)
(define lst (extract-bindings name bindings))
(cond
[(empty? lst)
(error 'extract-binding/single "~e not found in ~e" name bindings)]
[(empty? (rest lst))
(first lst)]
[else
(error 'extract-binding/single "~e occurs multiple times in ~e" name bindings)]))
; extract-bindings : sym (listof (cons str str)) -> (listof str)
(define (extract-bindings name bindings)
(map cdr (filter (lambda (x) (equal? name (car x))) bindings)))
; exists-binding? : sym (listof (cons sym str)) -> bool
; for checkboxes
(define (exists-binding? name bindings)
(if (assq name bindings)
#t
#f)))