setqについて書いた。
SLIMEのM-. M-, C-cC-mあたりがおもしろい
(incf x)をC-cC-mすると
(LET* ((#:G766 1) (#:NEW765 (+ X #:G766))) (SETQ X #:NEW765))
とマクロ展開される
setqについて書いた。
SLIMEのM-. M-, C-cC-mあたりがおもしろい
(incf x)をC-cC-mすると
(LET* ((#:G766 1) (#:NEW765 (+ X #:G766))) (SETQ X #:NEW765))
とマクロ展開される
Gaucheだとこんな感じに設定しておけば、C-cSでウィンドウを2つに分け、一方でgoshインタプリタを実行するコマンドを定義する。
これをSlimeでもやりたかったので調べてみたところ、
(global-set-key "\C-cs" 'slime-selector)
と.emacsに書いておけばC-cs[?cdeilt]でバッファを切り替えられるらしい。
?: Selector help buffer. c: SLIME connections buffer. d: *sldb* buffer for the current connection. e: most recently visited emacs-lisp-mode buffer. i: *inferior-lisp* buffer. l: most recently visited lisp-mode buffer. t: SLIME threads buffer. v: *slime-events* buffer.
とりあえずこれでいいかな。
今年はcommon lispを覚えようと目標を立てたので、早速環境を整えてみた。clisp+SLIMEだとwarningがやたら出たり挙動がへんだったりしたのでとりあえずsbclを使うことにした。
そしてNinety-Nine Lisp Problemsを解いていく。
あとはこの二冊をやる予定。
15082008 processing Emacs
色づけされるのでちょっとよい。
processingのコードをEmacsで編集する方法はここから。
21052008 Emacs
バッファの切換えをもっと楽にしたいの通りに設定。
快適!
最近また、Catalystで色々作っているので、昔のエントリを探してTT modeの設定をした。
;;tt (autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t) (setq auto-mode-alist (cons '("\\.html$" . html-helper-mode) auto-mode-alist)) (setq auto-mode-alist (cons '("\\.tt2$" . html-helper-mode) auto-mode-alist)) (require 'html-tt) (add-hook 'html-helper-mode-hook 'html-tt-load-hook) (add-hook 'html-helper-mode-hook '(lambda () (font-lock-mode 1)))
そして、Jonathan Rockwayのトークは聴いておくべきだったかなとスライドみながら思った。
catalystのE-Bookは本を買うと安く買えたので、ついでに買っておいたけど、本を見るまでもないときなんかに調べものができたりとか、検索できるので意外と重宝している。
schemeだとelseのところがelispだとtになる。どの条件にも当てはまらないとnilだから、elseはtで表現するらしい。
(defun A (x y) (cond ((= y 0) 0) ((= x 0) (* 2 y)) ((= y 1) 2) (t (A (- x 1) (A x (- y 1))))))
Ackerman関数ってのが良く分からなかったので調べたら爆発的に計算量が増える関数らしい。しかも末尾再帰的にならないらしい
相変わらずSICPをelispで
(defun goodenough (guess x)(< (abs (- (* guess guess) x)) 0.001)) (defun improve (guess x) (average guess (/ x guess))) (defun average (x y) (/ (+ x y) 2)) (defun sqlt_it (guess x) (if (goodenough guess x) guess (sqlt_it (improve guess x) x))) (sqlt_it 1.0 5) 2.2360688956433634