Gaucheで文字列埋め込み

2015-02-20
blog

変数や関数の実行結果を文字列に埋め込む、Rubyでいうところの "a = #{a}" みたいなことをGaucheでやるには、

> (let ((a 123))
#"a = ~a"))
"a = 123"
  • 後ろにすぐ文字を繋げたい場合には、|で囲う
> (let ((a 123))
#"a = ~|a|aaa"))
"a = 123aaa"
  • リーダーマクロで実装されているということで、#の前にクォートをつけると展開した形がわかる
> '#"a = ~|a|aaa"
(string-append "a = " (x->string a) "aaa")