Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

Gauche

たらい回し関数

「たらいを回すならHaskell」を読みました。たらい回し関数(竹内関数)を,Perl, Ruby, Python, C言語, Haskellで作って,実行速度を比較しています。言語によって,これほど性能差があるというのは驚きでした。Haskellがこんなに早いのは,遅延評価という仕…

perms

昨日に引き続き,「珠玉のリスト・プログラミング」に取り組みました。なんとか2問解けたので,3問目に挑戦です。3問目はこんな問題です。 与えられたリストの順列を生成する関数 perms 関数permsを実装する際,関数interleaveを使用するので,昨日,作成し…

subs, interleave

「珠玉のリスト・プログラミング」で,3つの問題が出題されています。 Schemeを勉強中なので,挑戦してみようと思います。自己流で書いているので,書き方でまずいところがたくさんあると思います。lisperの方々のコメントがいただければ幸いです。まず,1問…

Yコンビネータ

相変わらず,Yコンビネータについては理解できていないのですが,昨日に引き続き,Rubyの学習もかねて,Schemeで書かれたYコンビネータをRubyで書くことに挑戦しました。 http://d.hatena.ne.jp/kazu-yamamoto/20080402/1207127522 でYコンビネータは,以下…

10章分の9章(後半)

今日は、『The Little Schemer』の Chapter 9 ...and Again, and Again, and Again, ... の後半(p160〜)を読んでいます。 今まで,何とか読み進めることができたのですが,難所に差し掛かってきました。Yコンビネータは難しいです…。 以下を参考に理解しよう…

10章分の9章(前半)

今日は、『The Little Schemer』の Chapter 9 ...and Again, and Again, and Again, ... の前半(p149〜159)を読みました。 面白かったり,難しかったりするのですが, (define last-try (lambda (x) (and (will-stop? last-try) (eternity x)))) のとき,(wi…

10章分の8章(後半)

今日は、『The Little Schemer』の Chapter 8 Lambda the Ultimate の後半(p141〜)を読みました。Lambdaってすごいと思います。evens-only*は,リストから偶数だけを取り出す関数です。以下のように動作します。 gosh> (evens-only* '((9 1 2 8) 3 10 ((9 9)…

10章分の8章(前半)

今日は、『The Little Schemer』の Chapter 8 Lambda the Ultimate のP140まで読みました。これまで順調に読み進めたのですが,multirember&coは苦戦しました。じっくりと考えて,なんとか理解できたと思うのですが,これを自分で書くとなると多分書けないで…

10章分の7章

今日は、『The Little Schemer』の Chapter 7 Friends and Relations を読みました。第7章は、集合演算の話です。本章ではset?から始まり,makeset, subset?, eqset?...と少しずつ実装していくのですが,読むときには,さっと答えを見るのではなく,自分で考…

10章分の6章

今日は、『The Little Schemer』の Chapter 6 Shadows を読みました。第6章は、式の評価の話などですが,最後の数の表現の話が面白かったです。普段,数をアラビア数字で表現していますが,括弧の数で数を表現したら以下のようになります。 gosh> (plus '(()…

10章分の5章

今日は、『The Little Schemer』の Chapter 5 *Oh My Gawd*: It's Full of Stars を読みました。少し複雑になってきましたが,なんとかまだ読めています(^^)。

10章分の4章

今日は、『The Little Schemer』の Chapter 4 Numbers Games を読みました。Numbers Gamesとあるように,加減乗除や不等号演算などを再帰を用いて,遊び感覚で説明してありました。楽しい章でした(^^)。 等号(=)の定義でも再帰が使われていたので,こんなと…

10章分の3章

今日は、『The Little Schemer』の Chapter 3 Cons the Magnificent を読みました。第3章は,consと再帰についての学習でした。特に,再帰については丁寧に1ステップずつ読み解いています。 疑問点というわけではないのですが,例えば,第3章の最後にmultisu…

10章分の2章

今日は、『The Little Schemer』の Chapter 1 Toys Chapter 2 Do It, Do It Again, and Again, and Again ... を読みました。一問一答形式で,かつ短い英文で書かれているので,今のところはまだ理解できています…。

The Little Schemer

やっと『The Little Schemer』が届きました。ちょっとずつ読んでいきます…。

27章分の27章

今日は、『プログラミングGauche』の 26章 継続渡しによるWebアプリケーション 27章 Kahuaアプリケーションを書こう を読みました。 26章 19章を読んだときに、「継続」恐怖症になったので(^^)、本章は理解できないのではと思ったのですが、なんとか読むこと…

27章分の25章

今日は、『プログラミングGauche』の 24章 GaucheでCGIスクリプトを書いてみる 25章 スケジュール管理アプリケーション を読みました。 24章 SchemeスクリプトをCGIスクリプトとして実行するための環境設定には以下を参考にしました。 http://karetta.jp/art…

27章分の23章

今日は、『プログラミングGauche』の 22章 データベース 23章 日付と時間 を読みました。 22章 コマンドライン版のスケジュールデータベースを、 ファイルに直接read/writeで記録する方法 dbmモジュールを使った方法 RDBMSを使った方法 という風に順を追って…

27章分の21章

今日は,『プログラミングGauche』の 19章 継続(昨日からの継続…) 20章 モジュールシステム 21章 デバッグ を読みました。 19章 昨日,読んでほとんど意味が分からなかったので,今日も取り組んでいます。 http://ja.wikipedia.org/wiki/%E7%B6%99%E7%B6%9A …

27章分の19章

今日は,『プログラミングGauche』の 18章 構文の拡張 19章 継続 を読みました。 19章 難しいです…。読みながら落ち込みそうになりましたが,p288の中で, ここまでの議論が一度に理解できなくても,心配しないでください。筆者も,今まで一度も継続に触れた…

27章分の17章

今日は,『プログラミングGauche』の 16章 さまざまなデータ構造 17章 総称関数とオブジェクト を読みました。 16章 本章の最後に出てくる「ストリーム」は難しいですが,不思議で面白いです。フィボナッチ数列は以下のように定義できるそうですが, gosh> (…

27章分の15章

今日は,『プログラミングGauche』の 10章 テストと例外処理 11章 評価モデル 12章 数値 13章 文字と文字列の処理 14章 入出力 15章 テキストの構築 を読みました。 10章 「10.3 テストフレームワークを書いてみる」ではgauche.testのサブセットを実装します…

27章分の9章

今日は,『プログラミングGauche』の 8章 真偽値と条件判断 9章 状態の管理 を読みました。 まだ9章までしか読んでませんが,この本なかなかいいなぁと思います。特に9章は面白かったです。ページを追うごとに簡単なサンプルが,どんどん拡張されて「簡単な…

もう一度Lisp学習

Lispは学生時代に授業で習ったのですが,あまり理解できず,社会人になってから取り組もうとid:rahaema:20060121に思い立って少し勉強したことはあったのですが,結局中途半端に終わっています。3ヶ月研修も残り1ヶ月を切っていますが,もう一度Lispを勉強し…