From 215f96c92ddf27762e352a38f03df9dc887dfa4c Mon Sep 17 00:00:00 2001 From: Wesley Kerfoot Date: Sat, 28 Apr 2018 00:30:34 -0400 Subject: [PATCH] helper functions for handling shell env context manager --- shell_env.rkt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 shell_env.rkt diff --git a/shell_env.rkt b/shell_env.rkt new file mode 100644 index 0000000..a4ec5c2 --- /dev/null +++ b/shell_env.rkt @@ -0,0 +1,19 @@ +#lang racket + +(define shell-env + (make-parameter #hash())) + +(define (merge-hash h1 h2) + (define h1-vs (hash->list h1)) + (define h2-vs (hash->list h2)) + (make-hash (append h1-vs h2-vs))) + +(define (merge-hashes . hs ...) + (foldl merge-hash #hash() hs)) + +(define (set-vars vars) + (apply + merge-hashes + (list + (shell-env) + (make-hash vars))))