(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 !)])
