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:
INFO
WARNING
ERROR
You 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 concepts, 105 exercises, and real human mentoring, all for free.