さくらんぼのlambda日記

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

2010-02-03から1日間の記事一覧

でも無理だっ

終わると思ったんですけど。もうちょっとだけ続きそうです。残るは 文字列を中央寄せ・左詰・右詰する "次"の文字列を取得する 文字列を暗号化する 文字列中で指定したパターンにマッチする部分を置換する 文字列中に含まれている任意文字列の位置を求める …

文字列を浮動小数点に変換する

ちょっと順番が前後してしまいましたが、今度は小数などを読み込む方法です。 read-from-stringを使えばらくちんです。 (read-from-string "10.0") 10.0 4 (read-from-string "1/2") 1/2 3 ちなみにread-from-stringはLispのリテラルを理解できるので複素数…

ASCII文字をコード値に(コード値をASCII文字に)変換する

これはchar-codeを使えば実現できます。Lispだと文字の表現が普通の言語と違う(#\をつける)ところだけ注意が必要でしょうか。 (char-code #\A) 65

8進文字列を整数に変換する && 16進文字列を整数に変換する

Lispだとこれらの変換は一纏めで処理できるのでまとめてしまいます。 (parse-integer "11" :radix 2) 3 2 (parse-integer "77" :radix 8) 63 2 (parse-integer "99" :radix 10) 99 2 (parse-integer "FF" :radix 16) 255 2 (parse-integer "FFF" :radix 16) …

文字列の先頭と末尾の空白文字を削除する

これはそのものずばりtrimを使えばできます。先頭とか末尾を指定する場合には、string-left-trimやstring-right-trimを使うことが出来ます。 ただ、Common Lispのtrimは他の処理系(Ruby、PHPなど)と違って空白文字に相当するものを引数で指定するようです。…

文字列を1行ずつ処理する

これはread-lineを使えば簡単に実現できます。with-input-from-stringで文字列をストリームにしてから処理という感じですね。 (with-input-from-string (in "foo bar baz") (do ((line (read-line in nil) (read-line in nil))) ((null line)) (print line))…

文字列を1文字ずつ処理する

これは実はすでに使っていますね。mapを使えば実現できます。 (map 'string #'(lambda (x) (princ x)) "hogehoge") hogehoge "hogehoge" こんな感じで出来ます。

Lispで文字列処理まとめて!

いい加減おしまいにしたくなってきたので、文字列関連を一気に処理してしまおうと思います。 ただ、 文字列中の式を評価し値を展開する だけは難しそうなので後日やります。