A Common Lispben a stringek karakterekből álló vektorok. Úgy írjuk le őket, hogy a karaktereket dupla idézőjelbe tesszük (például "Hello World!").
A stringp predikátum csak akkor ad vissza igazat, ha a megadott érték egy string.
A stringeket a subseq függvénnyel lehet részstringekre bontani, amely megkapja a stringet, egy kezdőindexet és tetszőlegesen egy záróindexet.
Az indexelés nullától indul.
(subseq "Hello World" 1 5) ; => "ello"
(subseq "skip to the end" 5) ; => "to the end"
A stringek egyenlőségét a string= függvénnyel hasonlíthatod össze.
Ha a karakterek kis- és nagybetűs írásmódja nem számít, akkor a string-equal-t használhatod.
(string= "macaroni" "macaroni") ; => T
(string= "macaroni" "MACARONI") ; => NIL
(string-equal "macaroni" "MACARONI") ; => T
A stringek nagybetűsítését, kisbetűsítését és a szavak kezdőbetűjének nagybetűssé tételét a string-upcase, a string-downcase és a string-capitalize függvénnyel végezheted el.
(string-upcase "not too loud") ; => "NOT TOO LOUD"
(string-downcase "YELL IT FROM THE ROOFTOPS") ; => "yell it from the rooftops"
(string-capitalize "practical COMMON LiSP") ; => "Practical Common Lisp"
Ebben a feladatban olyan kódot írsz, amely segít Larrynek, a Lisp-űrlénynek feldolgozni és formázni a naplószövegeket. Ezek a naplószövegek különféle rendszerektől érkeznek, és fel kell dolgozni őket, hogy az üzeneteik megjeleníthetők legyenek egy informatív monitorozási kijelzőn.
A naplószövegek formája "[<level>]: <message>". A szint a következő értékek egyike: info, warn vagy ohno.
Definiálj egy log-message nevű függvényt, amely egy naplószöveget vesz át, és a benne lévő üzenetre értékelődik ki.
(log-message "[ohno]: whoops!") ; => "whoops!"
A naplószöveg szintje határozza meg a súlyosságát.
info szint :everything-ok súlyosságot jelentwarn szint :getting-worried súlyosságot jelentohno szint :run-for-cover súlyosságot jelentDefiniálj egy log-severity nevű függvényt, amely egy naplószöveget vesz át, és a megfelelő súlyosságra értékelődik ki.
(log-severity "[warn]: might want to get that checked") ; => :getting-worried
Sajnos előfordul, hogy a naplószövegek nincsenek mindig helyesen formázva. Egészen pontosan a napló szintje nem feltétlenül csupa kisbetű, ahogy fentebb megadtuk. Módosítsd a log-severity függvényt, hogy kezelje ezt az esetet.
(log-severity "[WaRn]: string case system failing") ; => :getting-worried
A súlyosságtól függően az üzenetet különbözőképpen kell módosítani:
:everything-ok súlyosság esetén az üzenetet csupa kisbetűre kell alakítani.:getting-worried súlyosság esetén az üzenetben minden szót nagybetűvel kell kezdeni.:run-for-cover súlyosság esetén az üzenetet csupa nagybetűre kell alakítani.Definiálj egy log-format nevű függvényt, amely egy naplóüzenetet vesz át, és egy megfelelően formázott üzenetre értékelődik ki.
(log-format "[ohno]: whoops!") ; => WHOOPS!
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Common Lisp nyelvet 27 fogalom92 feladat segítségével, valódi emberi mentorálással, mindez ingyen.