Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

memqとウィンドウ環境の読み込みに関して

memqはリストの中にあればリスト自体、
なければnilを返してくる関数です。

(memq 'a '(a b))
;; => (a b)

(memq 'a '(b v))
;; => nil

というわけで、window-systemと合わせて使うと
リスト中に一致したものがある場合、条件を実行する式を書く事ができます。

(when (memq  window-system '(mac ns))
  ...
)

ちなみに、window-systemに格納される値はデフォだと

x
    Emacs is displaying using X. 
pc
    Emacs is displaying using MSDOS.
w32
    Emacs is displaying using Windows NT or Windows 95.
nil
    Emacs is using a character-based terminal.

とあるそうです。
OS X系の記述がないので、どうもCocoa Emacs自体が定義してる値のようです。