Common Lispで文字列処理
ちょっと自分でプログラム書く場面で一々Hyperspecとかgoogle先生に聞くのが嫌になってきたので、Lispの文字列処理についてまとめていこうと思います。
何が必要かっていうのの参考になりそうなものとして多言語の逆引き辞典的なものが参考になると思ってRubyの逆引きハンドブックの文字列の項に対応してそれぞれ調査していこうと思います。
http://www.namaraii.com/rubytips/?%CA%B8%BB%FA%CE%F3
その前に、簡単なところからいきます。Lispでは文字列は他の言語同様の宣言で利用できます。
(setq test-string "Hello World") "Hello World"
これで、変数test-stringに"Hllo World"が束縛されます。
ちなみに、文字は
(setq charactor #\e)
とか記述すると文字になります。
文字列繰り返し
いきなり困った!デフォじゃなさそう
http://rosettacode.org/wiki/Repeating_a_string#Common_Lisp
ここのを利用します。
(defun repeat-string (n string) (with-output-to-string (stream) (loop repeat n do (write-string string stream)))) (princ (repeat-string 5 "hi"))