- letcheck 20160202.1148(in MELPA)
- Check the erroneous assignments in let forms
概要
Lispのlet式は他言語を使っている人にとってハマることがあります。
というのは、ひとつのlet式のローカル変数は同時に初期化されるため、
前の変数を参照できないからです。
たとえばRubyでこのようなコードを
x = 1 y = x + 1 [x, y]
elisp/Common Lisp/Schemeに直接変換してもうまくいきません。
;;; 間違ったlet式 (let ((x 1) (y (+ x 1))) (list x y))
xがvoidであるため、エラーになります。
正しくはlet*を使うことです。
letcheck.el には M-x letcheck-mode というマイナーモードが定義されていて
参照されてない変数をハイライトします。
Fig1: voidな変数xがハイライトされて誤用だとわかる
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてletcheckを使う方は
以下のコマンドを実行します。
M-x package-install letcheck
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name letcheck
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。