diff options
author | David Thompson <dthompson2@worcester.edu> | 2015-08-15 23:12:38 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2015-08-15 23:12:38 -0400 |
commit | 08ed08da752e86011a5402e5f1282916614a1cb9 (patch) | |
tree | 0105114ff0d071da5ead26737d91e993d10537b0 | |
parent | 069797dc88e3b19e8656d3f7326ef57243ea2977 (diff) |
utils: Add alist-pick.
* shroud/utils.scm (alist-pick): New procedure.
-rw-r--r-- | shroud/utils.scm | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/shroud/utils.scm b/shroud/utils.scm index 20545e1..59dbbc2 100644 --- a/shroud/utils.scm +++ b/shroud/utils.scm @@ -24,6 +24,7 @@ vhash-replace vhash-values alist-compact + alist-pick gpg-binary call-with-encrypted-output-file call-with-decrypted-input-file)) @@ -58,6 +59,16 @@ such key." (loop tail (cons key keys) (alist-cons key value result))))))) +(define (alist-pick alist key) + "Return a list of the values in ALIST that are associated with KEY." + (fold-right (lambda (key+value result) + (match key+value + ((k . value) + (if (equal? key k) + (cons value result) + result)))) + '() alist)) + (define gpg-binary (make-parameter "gpg")) (define (call-with-pipe* program+args mode proc) |