by shigemk2

当面は技術的なことしか書かない

インクリメント デクリメント

;; 変数のインクリメント デクリメント
(setq a 0)
(incf a)				; => 1
(macroexpand '(incf a))			; => (setq a (1+ a))
a					; => 1
(incf a 2)				; => 3
(macroexpand '(incf a 2))		; => (setq a (+ a 2))
a 					; => 3
(decf a)				; => 2
(macroexpand '(decf a))			; => (setq a (1- a))
a					; => 2
(decf a 2)				; => 0
(macroexpand '(decf a 2))		; => (setq a (- a 2))
a					; => 0
;; ポイントを1進める
(macroexpand '(incf (point)))		; => (let* nil (goto-char (+ (point) 1)))

P197

Emacs Lispテクニックバイブル

Emacs Lispテクニックバイブル