2019年09月けんさく。趣味のことをやるページです。Lisp本、とりあえず片っ端から読んでいこうかと計画してる。Lispは、マクロに関する本だったが、これらはもっと色々な応用例を見せてくれる。Lispは狂った漫画が一番の特色だが(大好き。Lispに入門できる。みんなちゃんと遊べるから偉い。graphvisを出力にして、超簡易GUIを作るとか、面白いアイディアだと思う。clispの拡張機能を作るとはいえ、自分でwebサーバーを作っちゃうのも面白い。書いてあるコードだとchromeではエラーが出て、firefoxだと単なるテキストになってしまった。簡単なhttpのヘッダーを頭につけてやるとちゃんと動いだ。Lispと一緒で、最終目標はマクロでDSLを作ること。それこそがやはりLispの魂。この本ではSVGを生成するDSLを作って、それをwebブラウザで表示してゲームを作ってる。感動したのは、簡単なマクロを使って遅延評価を取り入れ、非常にエレガントにゲームのアルゴリズムを作ってること。ゲームの木を全て表現するデータ構造を使って、あとは遅延評価を取り入れれば、出来上がり。良いレスポンスを求めたければ木の無駄な枝を刈り取る必要がある。予想以上に伝統的なAIプログラミングだ。Lispには書いてないようなformatやloopの話が載ってるのも面白い。ポール・グレアムはloop嫌いだしね。loopとformatの黒魔術をガンガン使ったショートコードゲームはめまいがする。書いてないことも多い。CLOSについてはコミックに書いてあるだけ。packageには触れもしない。マクロについても最後に重要な役割を果たすけど、ちゃんと書いてあるとは言い難い。Lisp』も実践の名に恥じぬ本。バイナリを色々いじるのが面白かった。他のプログラミング言語の本でも滅多にバイナリを直接いじることはない。この本ではmp3ファイルのメタデータを取得して、SQLライクなデータベースを自作してる。あとWebプログラミングもできる。その際、htmlを吐き出すテンプレート言語を自作する。この本も目標はマクロを使って、バイナリデータを表現するクラス階層表現言語やデータベースへのクエリ言語やhtml生成言語などのDSLを作ること。ここにもLispの魂。この本もloopとformatについては詳しく書いてある。packageについてや、eval-whenなどの高度な機能についても説明してある。実際に製品を作ろうとすれば必要になる知識だろう(しかし、まだ外部のパッケージ管理等、現代的なエコシステムには必要なものが欠けているが、これはここ数年で進歩した部分なので、書いてないのは当たり前だ)。欠点としては、高度が全く関数型的ではないことだ。何でもかんでもとにかくloopで書こうとする。そもそも再帰に関する説明が全くない。Midnight流水プールデート月別アーカイブ2020年01月2019年12月2019年11月2019年10月2019年09月2019年08月2019年07月2019年06月2019年05月2019年04月2019年03月2019年02月2019年01月2018年12月2018年11月2018年10月2018年09月2018年08月2018年07月2018年06月2018年05月2018年04月2018年03月2018年02月2018年01月2017年12月2017年11月2017年10月2017年09月2017年08月2017年07月2017年06月2017年05月2017年04月2017年03月2017年02月2017年01月2016年12月2016年11月2016年10月2016年09月2016年08月2016年07月2016年06月2016年05月2016年04月2016年03月2016年02月2016年01月2015年12月2015年11月2015年10月2015年09月2015年08月2015年07月2015年06月2015年05月2015年04月2015年03月2015年02月2015年01月2014年12月2014年11月2014年10月2014年09月2014年08月2014年07月2014年06月2014年05月2014年04月2014年03月2014年02月2014年01月2013年12月2013年11月2013年10月2013年09月2013年08月2013年07月2013年06月2013年05月2013年04月2013年03月2013年02月2013年01月2012年12月2012年11月2012年10月2012年09月2012年08月2012年07月2012年06月2012年05月2012年04月2012年03月2012年02月2012年01月2011年12月2011年11月2011年10月2011年09月2011年08月2011年07月2011年06月2011年05月2011年04月2011年03月2011年02月2011年01月2010年12月2010年11月2010年10月2010年09月2010年08月2010年07月プロフィールけんさく。cal[i][j]%>">カテゴリ別アーカイブけんさく。