一週間
新しい職場での一週間が終わった。お昼御飯をちゃんと食べられているのと、 17インチのノートパソコンを持って通勤したせいで体力がついた気がする。先週までみたいに寒さが身にしみることがあまりない。
ありがとうございます。
Common Lisp のアナホリックマクロといえば、aif が有名だが、 Anaphora には it に setf できる sif や swhen がある。 gethash と一緒に使うと便利だったりする。
(eval-when (:compile-toplevel :load-toplevel :execute)
(require :anaphora)
(use-package :anaphora))
(defparameter *hash* (make-hash-table))
(sif (gethash :key1 *hash*)
(list 'ok it)
(list 'new (setf it 'value)))
ちなみに C-c M-m (slime-macroexpand-all)してみると↓のようになった。
(SYMBOL-MACROLET ((#:THIS-S971
(ANAPHORA::INTERNAL-SYMBOL-MACROLET ((IT #:THIS-S969))
(GETHASH :KEY1 *HASH*)))
(IT #:THIS-S971))
(IF (SYMBOL-MACROLET ((IT #:THIS-S969))
(GETHASH :KEY1 *HASH*))
(LIST 'OK
(SYMBOL-MACROLET ((IT #:THIS-S969))
(GETHASH :KEY1 *HASH*)))
(LIST 'NEW
(LET* ((#:G972 :KEY1) (#:G973 *HASH*))
(MULTIPLE-VALUE-BIND (#:G976)
'VALUE
(SYMBOL-MACROLET ((IT #:THIS-S969))
(LET* ((#:G981 #:G972) (#:G982 #:G973))
(MULTIPLE-VALUE-BIND (#:G984)
#:G976
(SB-KERNEL:%PUTHASH #:G981 #:G982 #:G984)))
#:G976))))))
symbol-macrolet を使ってること以外は、よく分からんw
さらに asif なんてものもある。 then では setf できないが、else では setf できるらしい。
投稿者
Yoshinori Tahara
時刻:
23:40
0
コメント
ラベル: Common Lisp
新しい会社での初日。
新しいプロジェクトでの初日に似ている。
システム屋さんではないので雰囲気は違ったけど。
大量の新しいインプットに対して頭が飽和状態になっている。
脳に負荷を感じる。
ちょうどキーボードの配列をQWERTYからDVORAKにかえたときみたい。
そういえば、キーボードの配列は言語ごとに指が覚えているものらしい。
新しい配列で日本語入力に慣れても、Common Lispを入力するときはまだ全然慣れてなくて、やがて Common Lisp で慣れても Java を入力するときはまた全然慣れてなかったりする。
なにはともあれ初日楽しかったな。
退職した。ちょっとだけ似てるけど卒業とは違うね。やはり「逃げる」という感じがある。逃げたのか、進んだのかは、「考え方の違い」で片付けてしまおう。卒業と違って戻れないわけでもない。先生になるという手はあるのか。いや、それは違い過ぎるな。「送信」ボタンをクリックするまでにどれだけ悩んだことか。役員3人の姿をみたとき。泣きそうになった。何故か御成町のころのことがよく思い出される。よく雇ってくれたものだ。よく出てきたものだ。それらがあって今ここにいる。奇跡であろうと偶然であろうと、基本的に今ここにいることを肯定する。そうしないと生きていけないしね。
言葉にすると全部うそみたい。困ったものだ。でもね
ありがとうございました。
先週の土曜日。ちょっと渾然一体となったメモと感想で申し訳ないが。