The Little Schemer
The Little Schemer (The MIT Press)
- 作者: Daniel P. Friedman,Matthias Felleisen
- 出版社/メーカー: The MIT Press
- 発売日: 1995/12/21
- メディア: ペーパーバック
- 購入: 10人 クリック: 137回
- この商品を含むブログ (91件) を見る
これ面白いなぁ。
car,cdr,consを使ってリスト操作する所から始まって、再帰、高階関数、CPS、Yコンビネータの話にまでいっちゃってる。
これはすごいぞ。
でも、これらを知らない人がこの本を楽しめるかどうかは大分疑問。
一歩間違えると、ただQ&A形式で似たような事をずっとやってるだけだと感じてしまうかもしれない。
なんか、この本ってラムダ計算とかSchemeあたりを知ってる人が、先に挙げたような概念はこんなに平易に説明できるのか!すごい!っていう事を見て楽しむ本な気がする。つまり、すでにSchemer(Lisperでもいいけど)であるような人が読んで楽しむ物かと。こういった事を全く知らない状態で読んだら全然面白い本ではないのではないかなあ。てか、何がやりたいんだかわからない気がする。*1
でも、再帰とか高階関数やらなんやらをわかっているようなわかっていないような怪しい時に読むとこの本は素晴らしい効用があると思います。
というわけで、個人的にはかなり良い本なので、続きのSeasoned SchemerとReasoned Schemerも読んでみよう。
なんだか、Reasoned Schemerには関数型言語と論理型言語を融合させよう!みたいな事が背表紙に書いてあって読むのが楽しみだ。
*1:まあ、意味わからない事を繰り返して慣れ親しむっていうのも必要な事なのかもしれないけど。
Alan Kay
学校でアランケイの講演があったので行ってみた。
タイトルは、"Can Programming be reinvented?"だったと思う。
しっかし、英語だったもんで、正直内容はよくわかんなかった。折角の機会だったのに。。。
と思ってたら、アランケイが主催するViewpoints Research Instituteの大島さん(id:squeaker)がその講演の内容の要約を書いている!素晴らしい、感謝感謝です。これを読んで、あのスライドはそう言う意味だったのかぁ、と思ったりしてる訳です。
んで、まあよくわかんないなりに講演で興味深かったのが、Squeakで低レベルのソフトウェアも作っているという事。勝手にSqueakってグラフィカルにアプリケーションを作れるだけの言語だと思っていたんだけど、なんかGolden BoxっていうシステムはBNFを突っ込むと処理系を生成してくれるみたい。コンパイラコンパイラみたいな感じなのかな??しかも驚いたのがそのコードが1500行。どうやって書いてるんだ??気になる。面白そう。しかし、ちょっとオンライン上を探してみたんだけど、それらしい情報は見つからないなぁ。
さらに、OSとかも作ろうと思っているらしい。うーむ、「未来を予測する最善の方法は、それを発明することだ」を地で行ってる感じがしますね。
もしかして、ViewpointsResearchのwebページもSqueakで書かれたサーバで動いていたりするのかな??
最後の方でFPGAについて何か言及していてちょっと気になったんだけど、それもよくわかんなかったなぁ。なんかソフトウェアの開発の仕方も変わるだろうみたいな事を言っていた気はする。
しかし、もったいない事したなぁ。。
fancyvrb fancybox
悶々と修論を書いています。
それで、論文にプログラムのソースコードを載せたいんだけど、普通にverbatimを使うだけだと行間が文章の部分と一緒になっちゃって、日本語の文章の行間と同じだとちょっとスカスカに見えちゃうからソースの部分だけ行間を変えるにはどうしたらいいかなぁ、とか悩んでたら、先輩がfancyvrb(マニュアルのpdf)を教えてくれた。
これだと
\begin{Verbatim}[baselinestretch=0.5] hoge hoge \end{Verbatim}
とかってやるだけで、verbatimでかつその部分の行間を調整できます。
さらに、その先輩にfancyboxというのも教えてもらって、ある部分をボックスで囲んだりするのに便利なものが入ったパッケージ。
おぉ、これもうれしいじゃんとか思って両方使おうと思ったら、なぜかbaselinestretchの値を変えても、行間が変わってくれなくなっちゃった。。。
なんやかんやで色々悩んでいたら、なんと\usepackage{fancyvrb}を\usepackage{fancybox}の前に書いちゃうとそうなってしまうらしい。。。だからこれらのパッケージを使うときは
\usepackage{fancybox} \usepackage{fancyvrb}
という順番で宣言しないといけないみたい(一応先輩の環境でもそうだった)。
多分、マクロかなんかの定義が重複して上書きされちゃってるっぽいけど、latex恐ろしや。
ちなみに、予想通りこの二つのパッケージ間で定義が重複しているのだったら、宣言の順番を逆にすると、今度はfancyboxの何かの機能が使えなくなりそうなもんだけど、今のところ大丈夫。
はぁ、謎だ。
Google APIセミナー
今日、学校でgoogleのセミナーがあったので、参加してみた。
内容はマップ、パーソナライズド ホーム、デスクトップのAPIについて。
去年googleがきたときは、GFS(Google File System)の話とかあって、結構面白かったんだけど、今回はAPIを使ってどうやってガジェットを作るのか、といった紹介でした。まあ全部HTML、XMLで見た目を書いて、ロジックはjavascriptでAPIよんで、データはXMLという感じで、しかもあまり突っ込んだ話が無かったので、ちょっと残念でした。。かな
もうちょっと、APIの設計の話とか聞けたらよかったのになぁ。
それか、社内のインフラの話とかも聞いてみたかったな。
それとどうでもいいですが、Google Desktopのガジェットを作って、Googleに投稿し、採用されると、Googleグッズ(帽子、ペン、Tシャツ)がいただけるそうです。。
あと、今回の講演で配ってたTシャツは去年のより質が上がってました。さすが、勢いを感じます。
Software Engineering for Internet Applications
たまたまこんなページを発見した。どうやら、↓の本が無料で公開されているようだ。
なんでも、この本の目標は「一学期の授業でamazon.comが作れるようになる」とある。
本物のamazon.comのレビューでも非常に評判がよろしいので、ちょっと読んでみようかな。
Software Engineering for Internet Applications (The MIT Press)
- 作者: Eve Astrid Andersson,Philip Greenspun,Andrew Grumet
- 出版社/メーカー: The MIT Press
- 発売日: 2006/02/24
- メディア: ペーパーバック
- クリック: 3回
- この商品を含むブログ (1件) を見る
実装の話だけではなくて、アプリケーションの設計の話やユーザーアクティビティの分析など、面白そうな話が結構ある。
しっかし、これも無料だもんなぁ。すごいわ。