(let [greet (fn greet "Greet one or more people."
               ([name greeting & more]
                 (strings/join [.greeting ", " .name (strings/join .more "")] ""))
               ([] (greet world))
               ([name] (greet .name Hello))
               ([name greeting] (strings/join [.greeting ", " .name "!"] "")))]
  [(greet)
   (greet Ada)
   (greet Ada Hi)
   (greet Ada Hi " and " Bob "!")])
