雑文発散

«前の日記(2014-09-07) 最新 次の日記(2014-09-09)» 編集
過去の日記

2014-09-08 [長年日記]

[Emacs] The Emacs Lisp Style Guide を読んでいたら Emacs Lisp の数値比較で知らなかったことを知った

The Emacs Lisp Style Guide」というものがあるのを知って、ちょっと読んでみた。

インデントは Emacs が良きに計らってくれるので気にしないで良いのだけど、if よりも when 使えとかってのは、あー、なるほどね、と思ったりも。

  • Use when instead of (if ... (progn ...).
;; good
(when pred
  (foo)
  (bar))

;; bad
(if pred
  (progn
    (foo)
    (bar)))

他の例では、数値比較でこんな書き方ができたんだ!ってものがあった。

  • When doing comparisons, keep in mind that the functions <, >, etc. accept a variable number of arguments.
  ;; good
  (< 5 x 10)

  ;; bad
  (and (> x 5) (< x 10))

(< n1 n2) で、他のプログラミング言語での n1 < n2 という比較になるんだけど、ここに3つ以上の数値を入れることができるとか知らなかったよ。

上の例では、変数 x の値が 6 〜 9 であれば真( t )となり、それ以外であれば偽( nil )となった。

他のプログラミング言語経験者だったら「bad」と言われる例で書いちゃうよなぁ、普通は。