2009-08-01から1ヶ月間の記事一覧

問題1.33

ここまでくると、コードから意味を読み取るのは大変。馴れが重要なのかな? filtered-accumulate (define (filtered-accumulate filter combiner null-value term a next b) (if (> a b) null-value (if (filter a) (combiner (term a) (filtered-accumulate…

問題1.32

この辺から、抽象化しすぎで段々雲行きが怪しくなる。 実際にこのようなコードを書いたとしたら、ちゃんとメンテできるだろうか? accumulate再帰的手続き (define (accumulate combiner null-value term a next b) (if (> a b) null-value (combiner (term …

問題1.31

今日は比較的順調。 product手続き (define (product term a next b) (if (> a b) 1 (* (term a) (product term (next a) next b)))) productを使ったfactorial (define (factorial n) (define (term x) x) (define (next n) (+ n 1)) (product term 1 next …

問題1.30

sum手続きを反復プロセスに書き直す問題。 (define (sum-iter term a next b) (define (iter a result) (if (> a b) result (iter (next a) (+ result (term a))))) (iter a 0)) これは、意外とすんなり書けた。多分、sumと言う手続きが数え上げる意味合いの…

問題1.29

シンプソンの公式の問題。 意外とむずかった。というか、やっているうちに、高階関数のことをさっぱり忘れてしまって、『何やってんだっけ?』と言う状態に陥ってしまった。 (define (simpson f a b n) (define h (/ (- b a) n)) (define (y k) (f (+ a (* k…

高階手続き

だいぶん、問題をすっ飛ばして、ここまでやってきた。 さて、高階関数。日本語にすると、普通っぽいけど、英語だとやたらめったらかっこ良い。"Higher-Order Function"そんなかっこい高階関数ですが、普段プログラミングしているとほとんど現れない。という…

LLTV

一日遅れですが、感想を書かせてもらいまっす。ぼくが一番印象に残ったのは、一番最初のshiroさん、弾さん、よしおかさんの『朝から生テレビ』。 記憶に残っている言葉を字にすると(全く正確じゃないよ。そのうち、公開されるであろう動画の方を見てね。)、 …

Time Capsule

mac

これを買った目的は二つで、 バックアップちゃんと取ること 無線LANのアクセスポイント 一つ目は、言わずもがな。最近は、Airを仕事にも使っているので、さすがにバックアップしとかないと、ちょい怖い。 と言うことで、早速初回バックアップをしたのだけど…

散財

mac

昨日、同僚と一緒に有楽町ビックカメラ、立川ビックカメラとはしごして、以下のものを購入。アップル Time Capsule 2TB MB996J/A出版社/メーカー: アップル発売日: 2009/08/01メディア: Personal Computers クリック: 3回この商品を含むブログ (2件) を見るM…

問題1.23(Profile)

と言うことで、まんま同じように取ってみた。 http://d.hatena.ne.jp/tkuro/20090828/1251471257 オリジナル gosh> (begin (profiler-reset) (profiler-start) (prime? 100000000003) (profiler-stop) (profiler-show)) Profiler statistics (total 45 sampl…

違いについて

ぼくの中では、Ruby = Python (二アリーイコールです) と思ってたのだけど、使っていると結構違いに気づかされる。例えば、メソッドの扱い。 Pythonだと、 >>> def square(x): ... return x * x ... >>> square <function square at 0x65370> とオブジェクトを返してくれるけど、 Rubyだ</function>…

Pythonの"if __name__ == '__main__:'

Pythonでお気に入りの構文。Rubyでどうするんだろう、と思ってググったら、 http://d.hatena.ne.jp/lurker/20060524/1148469949 にあった(微妙にタイトル間違ってるけど)。 if $0 == __FILE__ then # 直接呼ばれたときのみ実行される end また、一つストレス…

問題1.27, 1.28

飛ばします。 何かこの辺は、問題見るのも疲れる。多分、一番最初に一人でやったとすると、ここで本を破いてるかもwww

問題1.26

感覚的には、 expmodを2重に評価している。 expmodは木構造再帰 なので、O(n)になっちゃうよ、ってことかな。実験省略。

問題1.25

わからない。

問題1.24

飛ばします。

問題1.23

変更点 (define (next-tester n) (if (= n 2) 3 (+ n 2))) (define (find-divisor n test-divisor) (cond ((> (square test-divisor) n) n) ((divides? test-divisor n) test-divisor) (else (find-divisor n (next-tester test-divisor))))) テスト。 1,000…

問題1.22

runtimeは、Gaucheにはないらしいので、『素人くさい〜』から頂いてきました*1。 http://www.csus4.net/hiki/SICPReading/?naoya_t+%28naochan%29#l56 (define (runtime) (- (time->seconds (current-time)) 1136041200)) ぼくの環境では、 1,000~ 1009 *** …

問題1.21

やるだけなので、省略。

1.2.6 素数性のテスト

毎日少しずつと思ってるものの、今回は特にやる気が。。。 かなりの部分が数学だもんね〜。 とりあえず、できそうなやつのみ、やってみます。

TDD, Database

IT勉強会のカレンダーで見つけた、下記のイベント http://hiroba-tech.net/tabid/70/Default.aspx に行こうと思っているのだけど、場所がマイクロソフト!!果たして、Macを持っていっていいのだろうか。。。ちょい不安。 会社のWinを持って行った方が無難?

Ruby de Overload

できるもんだと勘違いしてた。。 http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/1401Work Aroundとして参考になるページ。 http://d.hatena.ne.jp/sai-ou89/20080616

局所変数定義

OCamlの場合、大域環境で変数を束縛するのにもletを使う。 let x = 10;; 直接、x = 10とはならない("="は代入演算子ではなく、比較演算子のため)。letと言うと、lambdaのSyntax Sugarであると、SICPには書いてあるが、そのように解釈してしまうと、letで宣言…

立方体の作り方

仕事上、OpenGLを使わざるをえなくなったので、一日ばかりかけてチュートリアルのようなものを学習。 だいたいの概念などは理解したつもりなので、明日から実際のプログラムを書こうと思っているが、実際OpenGLを使っている人たちは、OpenGLの中の図形作成関…

カラー

普段、色に関わる仕事をしていないためか、RGB値で色を指定するのがとっても苦手。 とりあえず、代表的な色をOpenGLプログラミングガイドから抜き出しておく。 glColor3f(0.0, 0.0, 0.0); 黒 glColor3f(1.0, 0.0, 0.0); 赤 glColor3f(0.0, 1.0, 0.0); 緑 glC…

人は変えれない。自分は変えれる。

よく、何とかコンサルタントと言うような人が言う言葉ですが、この言葉って、実践するには簡単だし、それによって得られるリターンも大きい気がする。今、社内で勉強会を主催している。最近までの会社の雰囲気だと『誰も参加しないかなぁ』とか『開催しても…

問題1.20

最大公約数の問題をNormal-Orderで展開したときと、Applicative-Orderで展開したときでトレースしろってことかな? てことで、真面目にやってみた(かなりはしょったけど)。まず、Normal-Order (gcd 206 40) ;=> (gcd 40 (rem 206 40))) ;=> (gcd (rem 206 40…

1.2.5 最大公約数

一日一節ぐらい行きたいところだけど、仕事が入るとペースがすこぶる鈍る。早く4章まで行きたい。さて、Euclidのアルゴリズム。一番最初に習ったのがいつかは忘れたけど、便利なアルゴリズム。 でも、このアルゴリズムの一番の妙なところと言うのは、完全再…

四方山話

第4章付近で我を見失ったSICPに再度挑戦すべく、SICP-Liteの力を借りつつ、やってるわけですが、少し脱線。id:Ehrenの勧めでプログラミングの基礎 (Computer Science Library)作者: 浅井健一出版社/メーカー: サイエンス社発売日: 2007/03メディア: 単行本購…

問題1.19

息切れ。。。飛ばす。