140709 水曜 Emacs Lisp で無名関数

休憩時間に scratch バッファで Emacs Lisp を少し触ってみた。

関数定義

関数は defun で定義する

(defun hoge (x y)
  (+ x y))

(hoge 2 3)
;; -> 5
(defun square (x)
  (* x x))

(square 6)
;; -> 36

無名関数 lambda

lambda で無名関数として書くと、それぞれ以下のようになる(はず)。

(lambda (x y) (+ x y))

(lambda (x) (* x x))

高階関数 mapcar

関数を引数に取ったり戻り値として渡したりできる。引数のリストに対して関数を適用する mapcar という関数があった。

(defun square (x)
  (* x x))

(mapcar 'square '(1 2 4))
;; -> (1 4 16)

こういうのはいちいち関数定義するのではなく lambda で書くのがよさそう。

(mapcar '(lambda (x) (* x x)) '(1 2 3 4 5 6))
;; -> (1 4 9 16 25 36)

おわり。

140709 ルーティン

140709 生活

活動
  • 2:00 -> 8:00 で睡眠時間 6:00
  • 会社 8:55in -> 20:50out
夕食
  • ご飯、明太子、納豆

140709 読んだもの

  • なし