A string in Clojure is a Java string, which is an object that represents immutable text as a sequence of Unicode characters (letters, digits, punctuation, etc.) and is defined as follows:
(def fruit "Apple")
The clojure.string library provides many standard string manipulation and processing functions. In addition, all the usual Java methods for operating on strings are available via interop.
In this exercise you'll be processing log-lines.
Each log line is a string formatted as follows: "[<LEVEL>]: <MESSAGE>".
There are three different log levels:
INFOWARNINGERRORYou have three tasks, each of which will take a log line and ask you to do something with it.
Implement the message function to return a log line's message:
(message "[ERROR]: Invalid operation")
;;=> "Invalid operation"
Any leading or trailing white space should be removed:
(message "[WARNING]: Disk almost full\r\n")
;;=> "Disk almost full"
Implement the log-level function to return a log line's log level, which should be returned in lowercase:
(log-level "[ERROR]: Invalid operation")
;;=> "error"
Implement the reformat function that reformats the log line, putting the message first and the log level after it in parentheses:
(reformat "[INFO]: Operation completed")
;;=> "Operation completed (info)"
Sign up to Exercism to learn and master Clojure with 12 concepts105 exercises, and real human mentoring, all for free.