function (#') について
「#' (シャープクォート)」が何なのか分からなくて調べたのでメモしておく。
- 「#'」は「function」と同じ意味
- 「'」を「quote」のかわりに使えるのといっしょ
- 関数をクオートするときは「'」よりも「#'」を使う方がよいとされている
- しかし「'」と「#'」は実装レベルでは同じもの
- 違いは「byte compiler」がコンパイルするときに、匿名関数が「#'」でクオートされていれば、匿名関数の内部まで「byte compile」できること
「#'」でクオートされていなくても
「byte compiler」がそれが関数だと分かる場合もあるので、
「byte compiler」的には「'」と「#'」のどちらでもいいときもある。
でも自分や他人がソースを読むときに
パっと見て「あーこれは関数なのだな」と分かるのは「人間」的にうれしいはずなので
関数をクオートするときはなるべく「#'」を使おうと思う。