lisp
ようするにエラーの修復手段を処理関数側で用意し、呼び出す側は自由に選択できるってことかな? Rubyとかならlowは例外だけを発生させて、lowとmidの間の階層でエラー修復手段つきの関数をつくるのだろうか。 Rubyみたいにスタックトレースにエラーメッセー…
んー。あとで実験。handler-caseはよくある例外処理なんだろうけど。
http://lispuser.net/commonlisp/sbcl.htmlもう1.0.6出てますよー。
コアファイル(イメージ)を作ってやればきっとできるんだろうね。イメージをファイルに落とすなんてRubyじゃできないことだからとても新鮮。まぁEmacsでもできるんだが。 試してみるか。
PerlはPOD、RubyはRDocとRD。じゃあCommon Lispはなんだろう?docstringなのかな。 cl-ppcreの使い方を「手早く」調べたいけど、documentation関数が返す説明よりもサイトの方が詳しい。どうせだったらその詳しい説明がdocstringになってくれればいいのにな…
http://d.hatena.ne.jp/ytakenaka/20070620/p1 http://d.hatena.ne.jp/ytakenaka/20070624/p1CLOSの理解のためRubyに翻訳してみました。 module RubyPNM # Rubyのモジュールは名前空間も管理 module PNMDataInfo # インスタンスを持たないクラスはモジュール…
http://d.hatena.ne.jp/ytakenaka/20070624/p1図のおかげで一発で理解できました。ありがとうございます。 class Fixnum def b "0b%03b" % self end end 0b111 # => 7 0b001 # => 1 0b111001 # => 57 # (ldb (byte 3 3) var) (0b111001 >> 3).b # => "0b111"…
互換性の問題とかで進化の道を選択しなかった。だからいつまでたっても時代遅れの古いLispのまま。末尾再帰を処理してくれないから末尾再帰するとあっというまに止まってしまい、Lispなのにwhileを使えというザマ、おえー。 標準添付のclライブラリで健気に…
http://d.hatena.ne.jp/ytakenaka/20070623/p1なるほど。データ(スロット)とメソッド共有のためだけの継承というわけですか… 理解に手こずったのはpnm-header/pnm-dataとpnm-data-infoはis_a関係なの!?ってところでした。 Ruby脳なので継承はis_a関係でな…
Rubyの%q!!のようなverbatim文字列、ヒアドキュメントってCommon Lispのリーダマクロで実装できるのかな。エスケープがうざいときがある。
d:id:ytakenaka:20070405興味のあるソフトウェアのソースコードなんてのはどうだろう?興味がある分野だと断然読みやすいと思う。 俺の場合はelispが身近だけど、Lispらしく書いているソースが少ない気がする。
http://d.hatena.ne.jp/ytakenaka/20070620/p1菱形継承は慣れてないから頭が混乱する。多重継承の使い道っていまだMix-inしか知らない。 どうやって理解すればいいんだろ。ドラクエ6の職業システムみたいなものかな。 たとえば僧侶と武闘家をマスターしたら…
最初からいちいち長い名前なんかにしてたら思考が中断してしまう。 パッケージで名前空間を分けられたら… 多値も恋しい。
http://www.cliki.net/Closureまだ使ってないけど、JavaScriptとか対応してなさそう…
http://d.hatena.ne.jp/mitsygh/20070620/1182365173id:mitsyghさんのエントリ。同じようなこと考える人はいるものだ。EmacsだとSLIMEで存在する。HyperSpecのデータベースはelisp側が持っているので外部プログラム側がそれを使いたければgnudoit経由で取り…
elispではcondition-case、Common Lispではhandler-case。
整数や文字にたいしてeqは使わんほうがいい。 eqlにすべし。 elispでeqを使いまくっていたので注意しなくては。
http://www.devchix.com/2007/05/25/ruby-dry-up-your-enumerations/Common Lispならマクロの出る幕すらない。 (defstruct stooge :name :hair :habit) (defparameter *stuff* (vector (make-stooge :name "Mo" :hair "bowly" :habit "eye poking") (make-st…
http://fridge-shell.blogspot.com/2007/02/sbcl.html $ ls -l out -rwxr-xr-x 1 rubikitch users 1059 2007-06-20 01:10 out $ file out out: Bourne shell script text executableやけに実行ファイルが小さいなと思ったら… なーんだ、faslを読み込むshell …
# (defun memoize (fn) # (let ((cache (make-hash-table :test #'equal))) # #'(lambda (&rest args) # (multiple-value-bind (val win) (gethash args cache) # (if win # val # (setf (gethash args cache) # (apply fn args))))))) module Memoize def m…
Rubyのオブジェクト指向に魅せられて以来rubyistだが、最近はCommon Lispに興味がある。 Lispの一騎当千の記述力の源であるマクロに首ったけになる。 これまで1〜12章、16章読破。現在17章。ん〜、多重継承は鬼門だ…rubyistのサガか。