LISP プログラミング

Contents

LISPオブジェクト

変な記号

シンボルは一見、変数名とか関数名に見えてしまう、つまりコンパイルが 終わったらそれはメモリ上のどこかを指す単なる名前で、デバッグオプションを 最適化するとどっかにいっちゃう、みたいなそんな感じを受けるけれども、 LISPでは違うみたいだ。シンボルはシンボル、立派なオブジェクト。

  • シンボルの基礎
  記号 同当の関数
シンボルそのもの 'hehe (quote hehe)
シンボルの指す値 hehe (symbol-value hehe)
シンボルの指す関数 #'hehe (symbol-function hehe)
シンボルの指す属性   (symbol-plist hehe)
  • 評価
  記号 同当の関数
評価しない 'hehe (quote hehe)
原則評価しないけど、 "," と ",@" は例外 `hehe  
"`" はついてるけど、 私は評価してね ,hehe  
"`" はついてるけど、私 の一番外の括弧をはずす ,@hehe  
  • シンボルの基礎

(set 'hehe 10)

とやると 'hehe というシンボルに 10 という値(オブジェクト?)が 割り当てられる。'hehe が指す内容は hehe で参照できる。

hehe => 10

(set 'huhu 'hehe)

とやると、'huhu というシンボルに 'hehe が割り当てられる。

huhu => hehe

なので、

(set huhu 99) ;;; 'huhu でなく huhu に注意。 ;;; つまりこれは (set 'hehe 99) と同じこと

とやると

hehe => 99

と 'hehe の指し示す内容が変更される。

オブジェクト

    • nil
    • 数値
    • 文字列
  • 関数

  • シンボル

  • コンスセル

Emacs

Windows用Emacs

GNUからリリースされているEmacsのWindows binaryはIMEの扱いでやや 挙動不審なので、 gnupack にあるものをダウンロードしてくると よいよう。Mingwと一緒になってないEmacsだけのものもあるので それを使うとよいよう。

Tramp

Windowsに標準で入っているftpがEmacsからはつかえないので、

ftp://ftp.gnu.org/old-gnu/emacs/windows/contrib/ftp-for-win32.zip

からftpを入手。適当にファイル名を変更して(しなくてもいいけど)、

(setq ange-ftp-ftp-program-name "C:\emacs\23\bin\ftp.exe")

とかいう設定をして使うようにする。