2013-05-01から1ヶ月間の記事一覧

問題1.15 をトレースしてみる

(define (cube x) (* x x x )) (define (p x) (- (* 3 x) (* 4 (cube x)))) (define (sine angle) (if (not (> (abs angle) 0.1)) angle (p (sine (/ angle 3.0))))) (require (lib "trace.ss")) (trace p) (sine 12.15) 実行結果 Welcome to DrScheme, vers…

トレースの仕方

DrSchemeでトレースの仕方がわからなかったので調べてみた。 http://d.hatena.ne.jp/chelan/20090508/1241832039こんな風に使うらしい (require (lib "trace.ss")) (trace トレースしたい関数) 問題1.14ならこんな感じ。 (define (count-change amount) (cc …

問題1.14 で心が折れそうなので、とりあえず先に進むことにする

(define (count-change amount) (cc amount 5)) (define (cc amount kinds-of-coins) (cond ((= amount 0) 1) ((or (< amount 0) (= kinds-of-coins 0)) 0) (else (+ (cc amount (- kinds-of-coins 1)) (cc (- amount (first-denomination kinds-of-coins)) …

通信速度改善(ジャンボフレーム設定の見直し)

NAS

とりあえずLANケーブルをつないで有線状態で 通信速度の改善を図ります。さしあたって、有線接続でどれくらい出るか計測。 NAS側のジャンボフレーム設定は9000。 PCのLAN接続速度は1000BaseT 無線LAN接続しているときよりも少し早いようです。 ジャンボフレ…

転送速度が遅い気がする。

QNAP NAS TS-419P Ⅱ RAID 1+0 ジャンボフレーム対応 なんかちょっと遅い気がする。。。orz なんでかなぁ?

問題1.12 をやってみた。。。けどうまく動かなくて写経orz

(define (pascal row col) (if (or (<= col 1) (<= row col)) 1 (+ (pascal (- row 1) (- col 1)) (pascal (- row 1) col)))) (pascal 0 0) (pascal 5 3) ;以下を参考に実装 ;http://d.hatena.ne.jp/tmurata/20090330/1238370771 いつになったら自分の力で解…

問題1.11 を半分写してみた

; 再帰プロセス版 (define (f n) (cond ((< n 3) n) (else (+ (f (- n 1)) (* 2 (f (- n 2))) (* 3 (f (- n 3))))))) ;(f 10) ;反復版 ;※全然わからない。。。orz ;http://www.serendip.ws/archives/354 (define (ff n) (if (< n 3) n (ff-iter 2 1 0 n))) (…

問題1.10 を(何とか)やってみた。

(define (A x y) (cond ((= y 0) 0) ((= x 0) (* 2 y)) ((= y 1) 2) (else (A (- x 1) (A x (- y 1)))))) (A 1 10);1024 (A 2 4);65536 (A 3 3);65536 (define (f n) (A 0 n)) ;nを2倍する (define (g n) (A 1 n)) ; 2 の乗数を求める ;ex (g 2) ;(A (- 1 1)…

問題1.9 をやってみる

(define (inc x) (+ x 1)) (define (dec x) (- x 1)) ;----- ;再帰的プロセス (define (plus-1-9a a b) (if (= a 0) b (inc (plus-1-9a (dec a) b)))) ;----- (plus-1-9 4 5) (inc (plus-1-9a (dec 4) 5)) (inc (plus-1-9a (- 4 1) 5)) (inc (plus-1-9a 3 5)…

問題1.8 を写経してみる

(define (square x) (* x x)) (define (cubic-improve x y) (/ (+ (/ x (square y)) (* 2.0 y)) 3.0)) (define (cubic-iter x y) (define improved (cubic-improve x y)) (if (cubic-good-enough? improved y) improved (cubic-iter x improved))) (define (…

問題1.7 をやって。。 ではなくて写してみる;;

(define (square x) (* x x)) ;(square 9) (define (sqrt-iter guess x) (if (good-enough? (improve guess x) guess) guess (sqrt-iter (improve guess x) x))) (define (improve guess x) (average guess (/ x guess))) (define (average x y) (/ (+ x y) …

問題1.6 をやってみる

だんだん辛くなってきました。 ググりながらやってます (define (square x) (* x x)) (define (sum-of-squares x y) (+ (square x) (square y))) (define (new-if predicate then-clause else-clause) (cond (predicate then-clause) (else else-clause))) (…

問題1.5 をやってみる

(define (p) (p)) (define (test x y) (if (= x 0) 0 y)) (test 0 (p)) ;無限ループに陥る。 ;正規順序では 完全に展開し簡約するので、評価しなくてもよい P で無限ループすることはない ;作用的順序では引数をすべて評価するため、P の評価で無限ループする

問題1.4 をやってみる

こんな感じでいいのかな? (define (a-plus-abs-b a b) ((if (> b 0) + -) a b)) (a-plus-abs-b 1 2) (a-plus-abs-b 1 0) (a-plus-abs-b 5 -10) ;b がプラスの時は + ;b がマイナスの場合、マイナス演算子として作用する、

問題1.3 をやってみる

とりあえず関数名をjjjにしてみました (define (square x) (* x x)) (define (sum-of-squares x y) (+ (square x) (square y))) (define (jjj a b c) (if (> a b) (if (> b c) (sum-of-squares a b) (sum-of-squares a c)) (if (> a c) (sum-of-squares b a)…

問題1.2 をやってみる

分母のところがちょっとわからなくてググってしまいました。 (/ (+ 5 4 (- 2 (- 3 (+ 6 (/ 4 5))))) (* 3 (- 6 2) (- 2 7)))

問題1.1 をやってみる

答えをカンニングしたりしながら練習問題を消化。 IF をもう忘れてて少し悩んだのは内緒。 10 ;10 (+ 5 3 4) ;12 (- 9 1) ;8 (/ 6 2) ;3 (+ (* 2 4) (- 4 6)) ;6 (define a 3) (define b (+ a 1)) (+ a b (* a b)) ;19 (= a b) ;false (if (and (> b a) (< b…

挫折してたけど再開。というかやり直し。

計算機プログラムの構造と解釈作者: ジェラルド・ジェイサスマン,ジュリーサスマン,ハロルドエイブルソン,Gerald Jay Sussman,Julie Sussman,Harold Abelson,和田英一出版社/メーカー: ピアソンエデュケーション発売日: 2000/02メディア: 単行本購入: 35人 …