Open12

Emacsに花束を

だいずだいず

プログラマとしてはエディタを使いこなしていきたい。
昨今のエディタではAIがサポートしてくれているけど、僕は古臭い思考の人間なので、自分の手でもコーディングできる様になりたい。
あえてEmacsを使って、自分にあったエディタを手に入れたい。

始めたてで書く内容もおぼつかないけど、アルジャーノンのように少しずつ変化がみられるといいな。

だいずだいず

一方で、何から手をつければいいのかわからない。
少しずつカスタマイズしてはコードを読んで使ってみるしかない気がする。
なかなか道は長そうだ。

だいずだいず

人のinit.elの設定を一つずつヘルプで調べて設定してみている。
地道に地道に。

だいずだいず

Emacsはドラゴンのいる洞窟を探検するようなもの、ということらしいけど、探検という感じはしてる。
そのうちドラゴンに出くわすのだろうか。

だいずだいず

「リスト遊び」という本を手に入れた。
これを進めてEmacs Lispに少しお近づきになりたい。

だいずだいず

zeropのpはpredicateという単語から来ているらしい。
Lisperならcoffeepでコーヒーブレイクに誘えるとか。
答えはt or nil。洒落てますね。

だいずだいず

フィボナッチ数列をLispで。

(defun fibonacci (x)
  (cond
   ((= x 0) 1)
   ((= x 1) 1)
   (t (+ (fibonacci(- x 1)) (fibonacci(- x 2))))))
だいずだいず

listの要素を置き換える関数作成。
ちゃんとかけた。

(defun repl (lst old new)
  (cond
   ((null lst) nil)
   ((eq (car lst) old) (cons new (repl (cdr lst) old new)))
   (t (cons (car lst) (repl (cdr lst) old new)))))
だいずだいず

listからある要素を削除する関数。

(defun del (x lst)
  (cond
   ((null lst) nil)
   ((eq (car lst) x) (del x (cdr lst)))
   (t (cons (car lst) (del x (cdr lst))))))
だいずだいず

集合に要素があるか判定する関数。

(defun menq (x set)
  (cond
   ((null set) nil)
   ((eq (car set) x) t)
  (t (menq x (cdr set)))))