コメント

//は;で同じだけれども、しばらく/* */に相当するコメントの方法がわからなく、一時的にコードを書換えてみたいときなどに難儀していました。
つい最近、/* */に相当するものを見つけたのでメモ。

#| コメントアウト |#


コメントしていただきありがとうございます。
以下追記です。

#;でS式一つをコメントアウトするのは、gaucheでは使えましたが、sbclでは使えませんでした。
詳しいことはわからないのですが、この機能便利だなと思い、マクロに挑戦してみました。

(defun |#;-reader| (stream sub-char numarg)
  (declare (ignore sub-char numarg))
  (read stream)
  (values))

(set-dispatch-macro-character
 #\# #\; #'|#;-reader|)

バックスラッシュが入力できず、円になってますが、脳内変換でおねがいします。
リーダー関数でnilを返すと、nilに置き換わるだけになってしまい、無にするにはどうすればいいのかしばらく悩みました。
HyperSpecでset-macro-characterのところに普通のコメントアウトの例があり、それを参考にすることでようやく動くようになりました。
ただ、閉じ括弧の位置によってはslimeのC-c C-cが動いてくれなかったりと、不便な部分あります。

(values)を返すというのは、手持の本のどれかに書いてあった気が今はするけれど、取組んでるときは全然思い出せなかった。やっぱり使ってみないと覚えられないな。