count-if関数

Lisperの後輩にそそのかされて薦められてPractical Common Lispを読んでいたら,count-if関数があることに気がつく.昨日のブラックジャックの問題を解くときに使った1の枚数を数える部分はこうやって書ける.

(defun number-of-1 (lis)
  (count-if #'(lambda (x) (= x 1)) lis))

(number-of-1 '(1 1 2 0 1 3))
=> 3

こりゃ便利.