lisp

common lispのプログラムにemacsでアタッチ

cursesっていうターミナル表示の制御ライブラリ*1を使ってテトリスを作ってみてるのだけど、途中でエラーが起こったときにデバッグ表示が乱れる。特にマルチスレッドだと目も当てられない。そこでemacsでアタッチしてデバッグすると便利。ちなみに↓がテトリ…

mpcを使ってみた

mpc*1はcommon lisp用のパーサコンビネータライブラリ。 Common Lisp で Lispインタプリタを作ってみた – さくらんぼの技術備忘録などを見て気になったので使ってみた。 使用例 以下はマニュアルにあるメールアドレス @ をパースする例。 まずパッケージを定…

sbcl で asteroidsを動かしてみるメモ on mac

asteroidsというlispbuilder-sdlを使ったゲームがある。手元でうまく動いていなかったのだが今日試したら動いたのでメモ程度に。環境 sbcl 1.2.5 quicklispはインストール済 macportsで libsdl_*-framework をインストール済 ライブラリの場所の指定 ~/.sbcl…

windowsでsbcl + lispbuilder-sdl

メモ。環境はwindows 7 64bit。 前半は思い出しながら書いているので間違いもあるかもしれない。quicklisp ができたおかげで昔に比べて結構楽になっているようだ。 sbclをインストールする http://www.sbcl.org/platform-table.html から windows x86 用をダ…

lispbuilder-sdl on clozure cl (on mac)

以下の記述に沿ってもslimeだと動きません…うーん。clozure clとかcclとか言われるのはANSI Common Lispの処理系の一つで、かつてはFranzからMacintosh Allegro Common Lispとして売られてた事もあるが、現在はオープンソースになっている*1。原則mac向けだ…

hashlife その2

前回のつづき。 今回は解説もしてみた。 使い方 環境はsbclで、quicklispがインストール済、かつlisp-builder-sdlが動く状態になっていること(これがちょっと面倒なんだけど…)。 $ ./hashlife.lisp と打つとpuffer trainが動き出すはず。 キー操作は ↑↓←→: …

hashlife

解説と続きを書いた→ http://d.hatena.ne.jp/Nos/20140928/1411884782 前回lispbuilderでライフゲームを作った。ただあれはあまり大きなサイズのものは動かせない。 大きいサイズのパターンを扱う手段としてはhashlifeという超高速のアルゴリズムがあって、…

lispbuilder-sdl on mac

どうせなのでもっとアクションゲーム的なのを作ったりできないかなーと思ってlispbuilder-sdlを入れてみた。前何回か入れようとして挫折しているが、今回はとりあえず例を実行出来るところまでは行った。環境: 処理系はsbcl 1.2.2 quicklispは入れてある パ…

Land of Lispを読んだ

長い事積んでたけど最近の週末を使ってようやく読み終えられた。日本語訳の方。 下の変なPV(プログラミングの本のPV!)通りぶっ飛んでて有名なlispの本。 公式ページも漫画になっていて、雰囲気がわかる。 http://landoflisp.com/ いろんなゲームを作って行…

slimeが動かなかった件

いつのまにかslimeがうまく起動しなくなっていて、しばらく原因がわからずにいたのだけど、 以下のデバッグ用マクロを.sbclrcに入れていたのが原因だったようでコメントアウトしたら治った。 (set-macro-character #\? (lambda (stream ch) (declare (ignore…

自動微分を実装してみた

自動微分というアルゴリズムがある。チェーンルールを使うことで、予め微分の式を与えなくてもそれと同等の精度で微分ができるというもの。もともとの計算時間の定数倍しかかからず、かつloopが入ってたりするような微分の式を書くのに困るような計算相手で…

n行ごとの平均をとる

スペクトル的なデータを取ったものの各ビンのデータ数が小さくて統計が足りないのでいくつかの行を平均してやってまとめたいというときはgnuplotのsmooth uniqをつかったりしていた*1のだけど、これは特にlog scaleでは大いにbuggy*2なのでスクリプトを作っ…

gsllを入れる(quicklisp)

quicklispでgsllを入れる。対象はsbclとclisp。 うちの環境はVirtualBox上のUbuntu 11.10(32bit)。 結論から書くとインストールはできるし使えるがユニットテストはいくらか失敗する。 gsllとは gsllはgnuの科学計算ライブラリgslをcommon lispから使えるよ…

数独ソルバ by 非決定性マクロ

On Lisp --- 非決定性をみて憧れみたいなものがあったので非決定性マクロを使って数独ソルバを書きなおしてみようという試み。とりあえず空欄の部分に対して全部choose-bindしてしまおうと思ったのだけど、何が困るってbindする変数の個数が決まらないんです…

数独ソルバ

バックトラック使うと数独一瞬で解けるよと知り合いが言っていたので作ってみた。 letで配列がコピーされると思っていてはまった。されないんですね。virtualbox上のubuntu*1のsbclで (time (solve sample-board1)) => Evaluation took: 0.562 seconds of re…

cygwinでcl-openglは使えるのだろうか

cygwinでcl-openglを使う方法はあるのだろうか quicklispでインストールしようとすると途中まではうまくいくのだが 初require時のコンパイルでgluライブラリなどをリンクできず詰まる c:\windows\system32 にあるやつを指定してもうまく動かなかった気がする…

xyzzy電卓半端移植+拡張その3 (ひとまず区切り)

xyzzyのナイスな電卓をコマンドラインから使えるように+科学定数を組み込む+単位が(申し訳程度に)扱えるようにする、の第3回。sigmaが使えるようにしたのと関数が定義できるように直したのとあとこまごました修正。これでhttp://xyzzy.s53.xrea.com/wiki/ind…

xyzzy電卓半端移植その2

si接頭辞が使えるようにしてみた。何やってるの感強い。 例えば秒でいえばsだけ定義してあるとmsとかnsとかが定義されているかのようにふるまう。マイクロ秒はus*1。シンボルの頭1文字を抜かしたところが定義済みなら適当に10のうん乗倍するということをして…

xyzzy電卓半端移植

続き:xyzzy電卓半端移植その2 - Nosの日記,xyzzy電卓半端移植+拡張その3 (ひとまず区切り) - Nosの日記xyzzyについてる電卓機能を移植しようとしてみたもの。こんな時期に僕はなにをやっているのだろう…。clispで半端に動く。 xyzzy電卓については→http://xy…

(if x foo) = (if (listp (listp x)) foo)? http://www.geocities.jp/m_hiroi/ http://xyzzy.s53.xrea.com/wiki/index.php?%BA%B4%CC%EE%2Flisp%A4%CE%B3%D8%A4%D3%CA%FD

Lispってやっぱり面白いかも

On Lispをコードを打ち込みつつ読み進めている。現在2章「関数」、クロージャのあたり。テスト期間だからあんまり読めないが、よくできた数学理論を眺めているような快感を感じる。Lispでプログラムを書くのが楽しいだろうこともすごく伝わってくる。何がい…

入門書を借りてきた

図書館で入門書を借りてきた。 「Emacs Lisp プログラミング入門」ってやつ。中身はhttp://www.bookshelf.jp/texi/elisp-intro/jp/emacs-lisp-intro.htmlとどうやら同じなようだけどやっぱり本の形の方が引きやすいし。リファレンスの方も借りたかったけど貸…