Is there a cleaner way to write this Clojure function that loops, updates and returns a map?
This function works, but I'm in the process of learning Clojure and want to know if there is a better/cleaner way to write this:

    ;; loop over methods, update the scripts map, and return scripts
        
    (defn update-scripts
      [filename]
      (loop [scripts {}
             methods (get-methods filename)]
        (if (seq methods)
          (let [method (first methods)
                sig (get-method-signature method)
                name (get-method-name sig)]
            (recur (assoc scripts name {:sig sig, :method method})
                   (rest methods)))
          scripts)))
    
    
    (update-scripts "gremlin.groovy")
Is there a cleaner way to write this Clojure function that loops, updates and returns a map?
===

This function works, but I'm in the process of learning Clojure and want to know if there is a better/cleaner way to write this:

    ;; loop over methods, update the scripts map, and return scripts
        
    (defn update-scripts
      [filename]
      (loop [scripts {}
             methods (get-methods filename)]
        (if (seq methods)
          (let [method (first methods)
                sig (get-method-signature method)
                name (get-method-name sig)]
            (recur (assoc scripts name {:sig sig, :method method})
                   (rest methods)))
          scripts)))
    
    
    (update-scripts "gremlin.groovy")