Michał "phoe" Herda 3 лет назад
Родитель
Сommit
fd8f330858
3 измененных файлов: 44 добавлений и 0 удалений
  1. 4
    0
      README.md
  2. 8
    0
      string-pokemonize.asd
  3. 32
    0
      string-pokemonize.lisp

+ 4
- 0
README.md Просмотреть файл

@@ -0,0 +1,4 @@
```
(string-pokemonize "foo-bar-baz-quux-FOO-BAR-BAZ-QUUX")
"FoO-BaR-BaZ-QuUx-fOo-bAr-bAz-qUuX"
```

+ 8
- 0
string-pokemonize.asd Просмотреть файл

@@ -0,0 +1,8 @@
;;;; string-pokemonize.asd

(asdf:defsystem #:string-pokemonize
:description "THE missing Common Lisp string function"
:author "Michał \"phoe\" Herda <phoe@openmailbox.org>"
:license "MIT license"
:serial t
:components ((:file "string-pokemonize")))

+ 32
- 0
string-pokemonize.lisp Просмотреть файл

@@ -0,0 +1,32 @@
;;;; StRiNg-pOkEmOnIzE.LiSp
;;;; MiT LiCeNsE
;;;; ® 2017 MiChAł \\\"pHoE\\\" HeRdA

(DeFpAcKaGe #:sTrInG-PoKeMoNiZe
(:uSe #:cL)
(:eXpOrT #:StRiNg-pOkEmOnIzE))

(In-pAcKaGe #:sTrInG-PoKeMoNiZe)

(DeFuN StRiNg-pOkEmOnIzE (sTrInG &kEy (StArT 0) eNd)
(cHeCk-tYpE StArT FiXnUm)
(lEt ((rEsUlT (mAkE-ArRaY (lEnGtH StRiNg) :eLeMeNt-tYpE 'cHaRaCtEr))
(EnD (oR EnD (lEnGtH StRiNg)))
(fLaG NiL))
(dEcLaRe (DyNaMiC-ExTeNt fLaG)
(bOoLeAn fLaG)
(fIxNuM StArT EnD)
(oPtImIzE (sPeEd 3)
(DeBuG 1)
(sAfEtY 1)))
(FlEt ((pOkEmOnIzE (cHaR)
(dEcLaRe (ExTeNdEd-cHaR ChAr))
(sEtF FlAg (NoT FlAg))
(iF FlAg
(cHaR-DoWnCaSe cHaR)
(cHaR-UpCaSe cHaR))))
(dEcLaRe (InLiNe pOkEmOnIzE))
(lOoP FoR I FrOm sTaRt bElOw eNd
dO (sEtF (aReF ReSuLt i)
(PoKeMoNiZe (ChAr sTrInG I)))
fInAlLy (ReTuRn rEsUlT)))))

Загрузка…
Отмена
Сохранить