2008-05-01から1ヶ月間の記事一覧

Forth Programmer's Handbook (3rd Edition) 届いた

amazon.com で注文していた http://www.amazon.com/Forth-Programmers-Handbook-Elizabeth-Rather/dp/1419675494/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1210036429&sr=8-1 が届いた。 注文したのが4/18。到着予定は5/15だったけど早く着いたんだ。 どうやら2…

defclass-star 便利

defclass は defstruct にくらべると、:initarg や :initform を明示的に指定しなければならないあたりが面倒。 それを解決してくれのが defclass-star. ;; こんなふうに書くと (defclass* cat () ((eye-color "blue") (body-color "シールポイント") (lovel…

小さな Forth もどきを作ってみた

(def-primitive :|create| のことろで codes-index を 0 に設定してなかったので、2回目以降の呼び出しが何もせず終っていた。 修正した。(2005/05/05) 今日はちょっと初心にかえって小さな Forth もどきを作ってみた。 実装は Common Lisp で、参考にしたの…

mkdir a b c

mkdir って一度に複数のディレクトリを作成できるんだね。 /tmp/a $ mkdir -pv a b c/d/e /tmp/a $ /bin/mkdir: created directory `a' /bin/mkdir: created directory `b' /bin/mkdir: created directory `c' /bin/mkdir: created directory `c/d' /bin/mkd…

Forth で無名関数の再帰

Perl で JS の arguments.callee 的なことしようと思ってハマった - IT戦記 の件を Forth で。Forth なら recurse がある。 :noname dup if dup . 1 - recurse else . then ; ok 10 swap ok .s <2> 10 47312420583688 ok execute 10 9 8 7 6 5 4 3 2 1 0 ok …

Common Lisp で無名関数の再帰

Common Lisp だとこんな感じ? (defmacro rlambda (lambda-list &body body) `(labels ((self ,lambda-list ,@body)) #'self)) (funcall (rlambda (n) (print n) (unless (zerop n) (self (1- n)))) 10) ん? むしろ引数に呼び出し元を持たせるのかな?