clojure.clj 794 B

12345678910111213141516171819
  1. (defn parting
  2. "returns a String parting in a given language"
  3. ([] (parting "World"))
  4. ([name] (parting name "en"))
  5. ([name language]
  6. ; condp is similar to a case statement in other languages.
  7. ; It is described in more detail later.
  8. ; It is used here to take different actions based on whether the
  9. ; parameter "language" is set to "en", "es" or something else.
  10. (condp = language
  11. "en" (str "Goodbye, " name)
  12. "es" (str "Adios, " name)
  13. (throw (IllegalArgumentException.
  14. (str "unsupported language " language))))))
  15. (println (parting)) ; -> Goodbye, World
  16. (println (parting "Mark")) ; -> Goodbye, Mark
  17. (println (parting "Mark" "es")) ; -> Adios, Mark
  18. (println (parting "Mark", "xy")) ; -> java.lang.IllegalArgumentException: unsupported language xy