さくらんぼのlambda日記

lambdaちっくなことからゲーム開発までいろいろ書きます。

大文字と小文字の入れ替え

こんなのもあるのですね。Ruby凄いというほかないw

Lispの標準関数ではないので自作しないといけないですね。使えそうな道具としては文字が大文字か小文字か判定するuppper-case-p、lower-case-pという関数があります。

(upper-case-p #\A)
==> T
(upper-case-p #\a)
==> NIL
(lower-case-p #\A)
==> NIL
(lower-case-p #\a)
==> T

sequenceはListではないので、dolistが使えないのでmapを使う必要があるかも。

でけた。

(map 'string
      #'(lambda (c)
          (if (upper-case-p c) (char-downcase c) (char-upcase c)))
      "TesT")
"tESt"