Skip to content

Instantly share code, notes, and snippets.

@bis83
Last active August 29, 2015 14:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bis83/5240faad0376ad917b0d to your computer and use it in GitHub Desktop.
Save bis83/5240faad0376ad917b0d to your computer and use it in GitHub Desktop.
alist getter-utility
(use srfi-1)
(define (assoc-get getter key alist =)
(cond
((assoc key alist =) => getter)
(else #f)))
(define (assq-get g k l) (assoc-get g k l eq?))
(define (assv-get g k l) (assoc-get g k l eqv?))
; ex.
(let ((alist '((name "john")
(age 20))))
(assq-get cadr 'name alist)
; ==> "john"
(assq-get car+cdr 'age alist)
; ==> [age, (20)]
(assq-get cdr 'name alist)
; ==> ("john")
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment