2013-06-01から1ヶ月間の記事一覧
これもよく見る形ですね。 (define (chapter1-scheme) (define (toplevel) (display (evaluate (read) env.global)) (toplevel) ) (toplevel) )
初期値やデフォルトで使える関数を、Global environment に追加するマクロ (define env.global env.init) (define-syntax definitial (syntax-rules () ((definitial name) (begin (set! env.global (cons (cons 'name 'void) env.global)) 'name ) ) ((defi…
Lisp In Small Piecesの1.6のまとめ。スコープの所が良くわかっていない。(自作処理系の)関数の実装には、(Schemeの)関数を使うのがよい。最も簡単な実装。 (define (invoke fn args) (if (procedure? fn) (fn args) (wrong "Not a funstion" fn))) 練習…
Lisp In Small Piecesの1.4のまとめ。 special form について 厳密にはformで無くてもspecial formと呼ぶ。 この本によると、Schemeは、quote if set! lambda の4つ。Common Lispは30以上のspecial formを持つ。気になって、Scheme処理系の言語リファレンス…
やっぱり Lisp In Small Piecesを読むことにしました。評価機の最初の一歩です。Lispの基本的なルールはこの2つです。 変数はシンボルによって表現される 関数適用は、最初の項が適用する関数を表していて残りがその関数に適用する引数を表しているリストで…
(define -ayalog ’())に良い刺激を受けて、ずっと積ん読になっていた最新コンパイラ構成技法を読み始めました。以前読んだときは、最初の練習問題で転んでいたのですが、右手に実践F#、左手にPurly Functional Data Structureで突破できました。関係無いので…
コーディングを支える技術 ~成り立ちから学ぶプログラミング作法を読んでもやもやしていた所があるのですが、いったん思っていることをアウトプットしてみます。 本の紹介 コーディングを支える技術は、世の中で人気のある(プログラミング)言語を比較しな…