2007-07-01から1ヶ月間の記事一覧

どうかく?の問題

http://ja.doukaku.org/comment/511/楽勝。 (require :iterate) (in-package :iter) (defun remove-comments (in out) (iter (for line in-stream in using #'read-line) (unless (char= (aref line 0) #\#) (write-line line out)))) (defun test () (with-…

どうかく?の問題

http://ja.doukaku.org/3/んー、今のレベルじゃ難しい… (require :iterate) (in-package :iterate) (defparameter *coins* '(500 100 50 10 5 1)) ;; DRY *coins* (defun combinations (wallet) (labels ((cnt (coin) (or (cdr (assoc coin wallet)) 0))) (i…

iterate(iter)を使ってみる

loopの強力版といったところ。 loopとの比較 iterにuptoがないのはびっくりしたがほかはほとんど自然に翻訳できる。 loopのif/when/unlessはanaphoricになっているが、iterは自分でbindしないといけない。 hashの巡回が自然なのがいい。loop版はダサすぎる。…

アンデッドに炎は定石じゃないの?

ゾンビ映画から学ぶ、ゾンビが現れたときにやってはいけないこと - GIGAZINE ファイナルファンタジーなどではアンデッドに炎は定石なんだが映画では違うのか。

elispでclosureもどきを実現する

http://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/comparison.html興味深い。elispではこれでclosureもどきが作れる。 (defun make-add (n) `(lambda (x) (+ x ,n)))

eql specializerは特異メソッド?

Rubyの特異メソッドとCLOSのeql specializer: ホットコーナーやっぱり同じようなものだったのか。初めてeql specializerを知ったとき、これって特異メソッド?と思ったものだ。

iterateパッケージ

俺はDebian GNU/Linux使いなので apt-get install cl-iterate でインストール。 ITER> (require :iterate) ITER> (iterate (for xx in '((1 . 1) (2 . 3))) (maximizing (+ (car xx)(cdr xx)))) 5 ITER> (iterate (for xx in '((1 . 1) (2 . 3))) (finding x…

sbclのコア作り、SLIME起動時間短縮

SBCL - Steel Bank Common Lispを参考にsbclのコア(イメージファイル)を作る。 俺はまだまだ彼ほど熟知していないのでpre-loadするライブラリは限られている。そこから削る削る。 そのかわりs-utils, arnesiをpre-loadしてみる。 (load "/usr/share/common…

*compilation*バッファを見せずにコンパイル

はてダラによるはてなダイアリーの更新など、compile関数でほとんどの確率で成功する処理をする場合は save-window-excursion でくるむといい。そうすることで見たくもない画面がポップアップしてこなくなる。 (save-window-excursion (compile COMMAND)) も…

windozeとスーパーマリオは同じ年に出たのか!

http://d.hatena.ne.jp/keyword/Windows?kid=2157#p11985年にWindows 1.0が出てたんだね。

elispって関数型言語か?

拡張にはELisp(Emacs Lisp)と呼ばれる関数型言語を用いる。 elispはLispの顔を持った手続き型言語だと俺は思う。関数型よりも手続き型の味が強い。グローバル変数使いまくってるし、再帰は御法度だしorzでもelispだって腐ってもLispなんだから、俺はなるべ…

skkの弱点

skkもEmacsとともに10年近く使っているが、最大の弱点は同音異字語。 「いった」を「言った」と「行った」を誤変換することがよくある。 「かい」のように対応する漢字が多い言葉も苦手かな。 いちいちタイピングをストップしないといけないのが日本語の悲し…

EnterってCtrl+Mじゃん?

http://kaede.to/~canada/doc/weird-key-binding「禁断の快楽・変態キーバインドのお誘い」より。わざわざこんな変態key bindingしなくてもCtrl+MはEnter。俺はいつもCtrl+Mしているから十分快適。 10年もEmacs使っていると異常なほどに左手小指が鍛えられる…

おとなり日記が出ない?

最近おとなり日記が出てないようだ。どうしたのだろうか? == おとなり日記設定 (*) コメントページにのみ表示 ( ) 表示しない

*SLIME Description*バッファに色付けする

M-x slime-documentation や M-x slime-describe-symbol などを実行すると *SLIME Description* バッファにそのシンボルの説明が出てくる。これは便利だが色がついてないので俺は見辛く感じる。 CAR is an external symbol in #<PACKAGE "COMMON-LISP">. Function: #<FUNCTION CAR> Its associated</function></package>…

更新

SLIMEでLispシンボルをslime-documentationなどするとエントリ名(ファイル名)が大文字になってキモイので小文字にできるようにした。http://www.emacswiki.org/cgi-bin/wiki/download/usage-memo.el

ライブラリ探し

Common Lispの標準ライブラリはさほど充実していないので、フリーでポータブルなライブラリを漁ることにしてみた。 S-UTILS http://homepage.mac.com/svc/s-utils/s-utils.tar.gz7320bytes。 S-UTILS helps in:・ manipulating directory pathnames ・ copyi…

Erlisp

http://dirkgerrits.com/programming/erlisp/おもしろそう。Erlangのparallelismとdistributed programmingをCommon Lispに取り入れようとしているプロジェクト。 しかし開発は止まっているし、ブログも2年ほど更新していない…http://dirkgerrits.com/progra…

ユーザーに思わぬ不便? 次世代DVDのコピー防止策

http://www.itmedia.co.jp/news/articles/0707/05/news049.htmlDVDを再生するのに専用ドライブと専用ソフトがいる?どうせGNU/Linux用ソフトは作ってないだろうから再生できないということになるな。こんな不便な思いをしてまでDVDを見ようとは思わない。 消…

loopの疑問

CL-USER> (setq alist '((1 . 1) (1 . 3) (1 . 2))) ((1 . 1) (1 . 3) (1 . 2)) CL-USER> (loop for (a . b) in alist maximize (+ a b)) 4 足して最大になるような「数字の組」を求めたい。 loopマクロでできるのかな?? 値は出るんだけどなー。 多値で(+ …

w3mの紹介

w3m

w3mの紹介。「無料の」ではなくて「フリーソフトウェア」と言いなさい。

どうかく?orgでCommon Lispプログラムを書いてみた。

http://ja.doukaku.org/http://ja.doukaku.org/8/ 1 (defun center (str len &optional (padchar #\ )) 2 "If LEN is greater than the length of STR, returns a new String 3 of length LEN with STR centered and padded with PADCHAR; 4 otherwise, retu…

夏休みに小学生がパソコン組み立て

http://journal.mycom.co.jp/news/2007/06/29/010/index.html昔の俺だったら喜んでやってたろう。

きのこの山 ほろにが

http://gigazine.net/index.php?/news/comments/20070704_meiji_kinokonoyama_horoniga/この色でマリオ2の毒キノコを思い出したぞ。

loopの奥深さを知る

loopマクロってほんとにすごい。究極の言語内DSL。ここまでくるともう芸術品としか言えない。 loopをキモいと言うLisperは多そうだけど、それが設計できるのがLispなんだろう。 いろいろな例をREPLで実行中。結果は後でさっと見られるようにusage-memoに書い…

drinking problem

http://www.ugoto.com/pictures/mommyi_have_a_drinking_problem.htmlワロタ。drinking problemを「アル中」と誤解した母親の話。 実際は「ジョーが1リットルジュースを飲みました。トムは2リットル飲みました。二人は合計どれだけジュースを飲みましたか?…

DVD-Rに2+GBのファイルを書き込めない

$ ls -l -rw-rw-rw- 1 root root 2865725480 2006-07-22 00:04 foo.bin -rw-rw-rw- 1 root root 100 2006-07-22 00:04 foo.txt foo.binをDVD-Rに焼こうとすると焼けないと怒られた。foo.txtのみ焼けた。 そしてそのDVD-Rはスクラップと化したorz $ growisofs…

DVD-Rの書き込みが遅い

8倍速のドライブ、8倍速のメディア(太陽誘電)。 8倍速で書き込んでるのに実際の速度が1.8倍っていったい… いっぱいいっぱいに書き込むと遅くなるものなのかな?終了時刻の見積りも狂いまくり。 $ growisofs -speed=8 -Z /dev/dvd -J -R dir 0.69% done, es…

w3m, lisp, functions, emacs, linux, ruby, debianリングに加入

加入したはいいが「このリングのロゴを取得する」がJavaScript使われててw3mユーザとしてとてもうざい。

usage-memo.elリリース

http://d.hatena.ne.jp/rubikitch/20070629#1183119440やっとできた。ソースは↓からどうぞ。 http://www.emacswiki.org/cgi-bin/emacs/download/usage-memo.elどんなのかというとぶっちゃけ *Help* などのヘルプバッファに書き込み・保存が可能になるという…