Una string in Clojure è una stringa Java, cioè un oggetto che rappresenta testo immutabile sotto forma di una sequenza di caratteri Unicode (lettere, cifre, punteggiatura, ecc.) ed è definita come segue:
(def fruit "Apple")
La libreria clojure.string fornisce molte funzioni standard per la manipolazione e l'elaborazione delle stringhe. Inoltre, tramite interop sono disponibili tutti i normali metodi Java per lavorare con le stringhe.
In questo esercizio elaborerai delle righe di log.
Ogni riga di log è una stringa formattata così: "[<LEVEL>]: <MESSAGE>".
Esistono tre livelli di log diversi:
INFOWARNINGERRORHai tre attività, ognuna delle quali riceverà una riga di log e ti chiederà di farci qualcosa.
Implementa la funzione message in modo che restituisca il messaggio di una riga di log:
(message "[ERROR]: Invalid operation")
;;=> "Invalid operation"
Gli spazi bianchi all'inizio o alla fine vanno rimossi:
(message "[WARNING]: Disk almost full\r\n")
;;=> "Disk almost full"
Implementa la funzione log-level in modo che restituisca il livello di log di una riga di log, che va restituito in minuscolo:
(log-level "[ERROR]: Invalid operation")
;;=> "error"
Implementa la funzione reformat che riformatta la riga di log, mettendo prima il messaggio e poi il livello di log tra parentesi:
(reformat "[INFO]: Operation completed")
;;=> "Operation completed (info)"
Iscriviti a Exercism per imparare e padroneggiare Clojure con 12 concetti105 esercizi e il mentoring di persone reali, tutto gratis.