タグ

2006年5月16日のブックマーク (6件)

  • Scheme:OnLisp

    On Lisp Paul Graham の著書でマクロのことが満載の。ただし Lisp で書いてある。 文中気になったコードをSchemeで書いてみるコーナー。 (セクションタイトルその他の邦訳は 野田さんの邦訳 をそのまま引用させてもらいます) マクロのツボ マクロはどのように、そしてなぜ違うのかを知ることは、マクロを正しく使うための鍵だ。 関数は結果を生むが、マクロは式を生む。----そしてこの式が評価されると結果を生む。 (「7 マクロ」から) マクロの引数は式であって値ではないことを忘れてはならない。 (「10.1 評価の回数」から) On Lispマクロのツボ5.1 Common Lisp は進化する5.3 関数の値のメモワイズ5.4 関数を合成する5.5 Cdr 部での再帰5.6 部分ツリーでの再帰7.1 マクロはどのように動作するか7.3 単純なマクロの定義7.5 引数リス

    higepon
    higepon 2006/05/16
    OnLispのお供に
  • http://yaplog.jp/strawberry2/archive/7817

  • Practical Common Lisp

    that book is dead sexy —Xach on #lisp (more blurbs) This page, and the pages it links to, contain text of the Common Lisp book Practical Common Lisp published by Apress These pages now contain the final text as it appears in the book. If you find errors in these pages, please send email to book@gigamonkeys.com. These pages will remain online in perpetuity—I hope they will serve as a useful introdu

    higepon
    higepon 2006/05/16
    良い本らしい
  • define-syntax でユニットテスト - tomapd == 22%

    結城さんが define-syntax を使った debug マクロ(デバッグプリント - 結城浩のSICP日記 - sicp)を紹介されている。マクロの便利な使い方の好例だと思う。Scheme ではなく、Common Lisp の話になってしまうが、高い評価を受けている Practical Common Lisp という(オンラインで読める)にもマクロを使った面白い例が 9 章に載っている。その章ではマクロを使ってユニットテストのための簡易ライブラリを作っていくのだが、まだ Lisp のマクロというものがよく分からなかった僕はこの内容にとても感銘を受けた。せっかくなのでこの内容の前半をさらっと簡単に Scheme (Gauche) を使って紹介したいと思う。 ではまずつぎのようなテスト(関数 + のテスト)を例にしている。 (= (+ 1 2) 3) (= (+ 1 2 3) 6)

    define-syntax でユニットテスト - tomapd == 22%
  • 主要開発者が語るグーグルとFirefoxの深い関係

    Firefox開発の中心的人物で、現在はGoogleでソフトウェアエンジニアを務めるDarin Fisher氏が先ごろ、もじら組が主催したイベントにあわせて来日した。同氏のGoogle入社は、Googleが独自ブラウザ開発に乗り出すのではといった憶測を呼んだこともある。Google移籍の真相と最近の活動について聞いた。 コンシューマーにフォーカス --Googleではどんな仕事をしているのですか。これまでの経歴もあわせて教えてください。 2000年の9月にNetscapeで働き始め、ウェブブラウザの開発チームがなくなったのをきっかけにIBMに移りました。そこでMozillaプロジェクトを手掛けました。Googleに加わったのは1年半前ですが、会社が変わってもやっていることは同じで、ここでの仕事もFirefoxを開発することです。 --Mozillaプロジェクトでは何を手掛けているのですか。

    主要開発者が語るグーグルとFirefoxの深い関係
  • 関数型言語の勉強にSICPを読もう - (36) 3章 - 小休止 port-foreach - higepon blog

    Ruiさんよりコメントを頂きました。 Schemeに慣れた人が書くとこんなにもきれいなのか。ありがとうございます。 このようにコードを見せていただくことはとても勉強になります。 sum は (apply + list) と書けますね。Gaucheだとport-for-eachという便利な高階手続きがあって、それをつかうと全体は次のようになります。(一時ファイルを使わないで済むよう、call-with-input-fileの代わりにcall-with-input-stringを使いました。) たしかに、sum は (apply + list)ですね。何で気づかなかったんだろう。 (port-for-each (lambda (list) (print (apply + list))) (call-with-input-string ”(1 2 3) (4 5 6)” (lambda (in)

    関数型言語の勉強にSICPを読もう - (36) 3章 - 小休止 port-foreach - higepon blog