lisp

fletとlabels

CommonLispのfletとlabels的なものを(あらかじめ使えるものはlambdaしかない状況で)自分で実装する必要が出てきたので、その際のメモ。 なお、以下では煩雑になるためfuncall呼び出しの記述を省略している(実際にはScheme処理系で動作確認を行っていた)。 le…

vimでREPL

現在は自分の主要開発言語の内の一つがcommon lispということもあり、エディタには基本的にEmacsを使っている。 ただ単純にエディタとしてはEmacsよりもvi(vim)の方が自分の好みにあってそうな気がする。※まともに使えていないので、気がするだけだけど... E…

Qi

Qiという型安全なlispがあるらしい。 僕がcommon lispで物足りないと思うことの一つが、静的型の欠如*1 *2なので、結構興味がある。 公式サイトドキュメントが面白そうなので、後で読む。 ### 最近はやりたいことが多すぎて、毎日寝不足。 仕事が...。 追記:…

clojure

先週のShibuya.lisp TT#4への参加をきっかけ*1に読み始めた『Programming Clojure』を一通り読み終えた。 今までは、JVM上の言語ということで何となく敬遠していたが、結構いろいろ面白そうな特徴があった。 とりあえず個人に良さそうだと思った点は以下の通…

DoubleArray(1.5) - 文字エンコーディングの違いによる速度・サイズ差

DoubleArray(1)で実装したDoubleArrayのテストも兼ねて、文字のエンコーディング方法の違いによって、どれくらい処理速度やサイズに差が出るのかを簡単に調べてみる。それぞれを厳密に比較しているわけではないので、特に正確な情報が得られるわけではないが…

emacsタブ拡張

標準のlisp-modeのタブ動作では、望み通りにインデントされないことがあるので、バックタブ(Shift+Tab)用の関数を作成。 標準のタブでのインデント: (multiple-value-bind (a b c) (values 1 2 3) (list a b c)) 作成したバックタブ用関数でのインデント: ※ …