title: Modyfing higher order functions output in ClojureScript
body: <p>I want to create helper function that modifies output returned by higher-order function.</p>
  <p>Example of higher-order function:</p>
  <pre class="lang-clj prettyprint-override"><code>(def use-meta-sub (make-app-fn (make-sub :meta)))
  </code></pre>
  <p>The problem is that when using this in let like this:</p>
  <pre class="lang-clj prettyprint-override"><code>(let [meta-sub (use-meta-sub props :get-me-meta-of-this)])
  </code></pre>
  <p>returns map of key-value pairs like this:</p>
  <pre class="lang-clj prettyprint-override"><code>{:key-we-almost-never-need-1 nil
   :key-we-almost-never-need-2 nil
   :key-we-almost-never-need-3 nil
   :key-we-almost-never-need-4 nil
   :meta-data {:something-useful &quot;foo&quot;
               :more-usefull      &quot;bar&quot;
               :and-so-on         &quot;baz&quot;}}
  </code></pre>
  <p>I would like to target only this <code>:meta-data</code> key</p>
  <p>I tried this and some other variations:</p>
  <pre class="lang-clj prettyprint-override"><code>(defn use-meta-data-sub [props ctrl]
    (:meta-data (use-meta-sub props ctrl))) ;; both with get
  </code></pre>
  <p>It does not work because (I think, that returns lazy sequence and I do not know how to actually firs evaluate it and then extract the key from output).</p>
  <p>Is this possible without editing 1st higher-order function, and other two it contains?</p>
  <p>(I read all documentation on clojure site and clojure-unraveled, either I do not understand them, or they do not cover this)</p>