SICP 4.3.2

4.45 The professor lectures to the student in the class with the cat 和訳と英語の対応がややこしいのでいったんまとめる。 文 sentence ::= verb-phrase + noun-phrase 動詞句 verb-phrase ::= verb + prep-phrase 名詞句 noun-phrase ::= simple-noun-…

SICP 4.3.1-4.3.2

4.35 (define (an-integer-between low high) (require (< low high) (amb low (an-integer-between (+ low 1) high)) 4.36 3.69では 3つの値すべてに integersを入れて、filterによってすべての三角形を見つけようとしていた。 http://syagi.hatenablog.com…

SICP 4.2.2-4.2.3

4.27 (define count 0) (define (id x) (set! count (+ count 1)) x) (define w (id (id 10))) ;;; L-Eval input: count ;;; L-Eval value: 1 ;;; L-Eval input: w ;;; L-Eval value: 10 ;;; L-Eval input: count ;;; L-Eval value: 2 ちなみに作用的順序の…

SICP 4.1.7-4.2.1

4.22 問題4.6では、 let->combinationを実装することで実現している。 ここでも同じアプローチを使う。 let->combination は 4.6 で定義済みなので、 analyze手続きに 以下を追記する (define (analyze exp) (cond ((self-evaluating? exp) (analyze-self-ev…

SICP 4.1.6

4.16 a (define (lookup-variable-value var env) (define (env-loop env) (define (scan vars vals) (cond ((null? vars) (env-loop (enclosing-environment env))) ((eq? var (car vars)) (if (eq? '*unassigned* (car vars)) (error "Unassigned variable…

SICP 4.1.3-5

4.11 教科書の実装ではフレームは ((var1 var2 var3) (val1 val2 val3)) となっているのを ((var1 val1) (var2 val2) (var3 val3)) と実装し直す。 #lang racket ;変更なし (define (enclosing-environment env) (cdr env)) (define (first-frame env) (car …

SICP 4.1.1-2

4.1 もともとの list-of-values (define (list-of-values exps env) (if (no-operands? exps) '() (cons (eval (first-operand exps) env) (list-of-values (rest-operands exps) env)))) cons の引数をあらかじめ評価してやれば良いので 左から右 (define (…

SICP 3.5.4 - 3.5.5

3.77 #lang racket (define (integral delayed-integrand initial-value dt) (let ((integrand (froce delayed-integrand))) (cons-stream initial-value (if (stream-null? integrand) the-empty-stream (integral (stream-cdr integrand) (+ (* dt (stream…

SICP 3.5.3

3.63 もとのsqrt-stream (define (sqrt-stream x) (define guesses (cons-stream 1.0 (stream-map (lambda (guess) (sqrt-improve guess x)) guesses))) guesses) Louisのsqrt-stream (define (sqrt-stream x) (cons-stream 1.0 (stream-map (lambda (guess)…

SICP 3.5.1-3.5.2

3.50 脚注12 12 Schemeが標準的に用意しているmap手続きは, ここに述べたものより一般的である. より一般的 mapは, n引数の手続きとn個のリストをとり, 手続きをリストのすべての第一要素に作用させ, リストのすべての第二要素に作用させ, 等々させて, 結果…

SICP 3.4.2

3.38 3.38a Peter => Paul => Mary 45 Peter => Mary => Paul 35 Paul => Peter => Mary 45 Paul => Mary => Peter 50 Mary => Peter => Paul 40 Mary => Paul => Peter 40 3.38b 以下のパターンが考えられる 並列実行により、いずれか1人の残高反映が失われ…

SICP 3.3.5

3.33 avalagerは以下の2パターンが考えられる ;avalager (define (avalager a b c) (let ((u (make-connector)) (v (make-connector))) (adder a b u) (multiplier u v c) (constant 0.5 v) 'ok)) ;avalager (define (avalager a b c) (let ((u (make-connec…

SICP 3.3.4

3.28 (define (or-gate a1 a2 output) (define (or-action-procedure) (let ((new-value (logical-or (get-signal a1) (get-signal a2)))) (after-delay or-gate-delay (lambda () (set-signal! output new-value))))) (add-action! a1 or-action-procedure)…

SICP 3.2 3.3

3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 #lang racket ; to use set-car! set-cdr! (require r5rs) (define (count-pairs lst) (let ((counted '())) (define (counter x) (if (or (not (pair? x)) (memq x counted)) 0 (begin (set! counted (cons x …

SICP 3.1

3.1 #lang racket (define (make-accumulator sum) (lambda (x) (set! sum (+ sum x)) sum)) (define A (make-accumulator 5)) ;test (A 10) (A 10) 3.2 #lang racket (define (make-monitored function) (let ((call-count 0)) (lambda (arg) (cond ((eq? a…

SICP 2.5

全部解けてから投稿しようと思ったが、後半が辛すぎた。 done is better than perfect ってことでとりあえずうp 2.77 パッケージ外へのインタフェースとして、 本文の complex-package では - add - sub - mul - div - make-from-real-imag - make-from-mag…

SICP 演習問題 2.4

2.73 a else節では、 operator 抽出した演算子に対応した演算処理関数を呼び出し、 operands で抽出した式に適用している。 number, valiableについては、 operator で演算子を抽出できないので吸収できない。 b c get, put が標準関数にないので、3.3.3 の…

SICP 演習問題 2.3

2.53 (list 'a 'b 'c) ;=> '(a b c) (list (list 'george)) ;=> '((george)) (cdr '((x1 x2) (y1 y2))) ;=> '((y1 y2)) (cadr '((x1 x2) (y1 y2))) ;=> '(y1 y2) (pair? (car '(a short list))) ;=> #f (memq 'red '((red shoes) (blue socks))) ;=> #f (mem…

Xperia Z5 Compact タッチ不具合

まずは、何も言わず以下の動画を見てくれ。 Xperia Z5 Compact タッチ不具合 動画にあるとおり、昨日機種変更したXperia Z5 Compactにタッチパネルの不具合がある。 どうも、以下の不具合にぶつかった模様。 Xperia Z5 Compactのタッチパネル不具合、原因は…

SICP 演習問題 2.2

2.17 #lang Racket (define (last-pair items) (if (null? (cdr items)) (car items) (last-pair (cdr items)))) 2.18 繰り返し (define (reverse items) (define (iter items result) (if (null? items) result (iter (cdr items) (cons (car items) result…

SICP 演習問題 2.1

2.1 #lang racket (define (make-rat n d) (let ((g (gcd n d))) (cond ((< (* n d) 0) (cons (* -1 (abs (/ n g))) (abs (/ d g)))) (else (cons (abs(/ n g)) (abs(/ d g))))))) (define (add-rat x y) (make-rat (+ (* (numer x) (denom y)) (* (numer y)…

SICP 演習問題 1.3

Exercise 1.29 ;h = (b-a)/n ;y_k=func(a+kh) ;sum = (y_0 + 4y_1 + 2y_2 + 4y_3 + ... + y_n) ; #lang Racket (define (simpthon a b func n) (* (/ (h a b n) 3) (sum-simpthon a b func 0 n))) (define (sum-simpthon a b func k n) (if (> k n) 0 (+ (co…

SICP 演習問題 1.2

Exercise 1.9 (define (+ a b) (if (= a 0) b (inc (+ (dec a) b)))) (+ 4 5) (inc (+ 3 5)) (inc (inc (+ 2 5))) (inc (inc (inc (+ 1 5)))) (inc (inc (inc (inc (+ 0 5))))) (inc (inc (inc (inc 5)))) (inc (inc (inc 6)) (inc (inc 7) (inc 8) 9 再帰 (…

SICP 演習問題 1.1

実はちょっと前からやっていたんだけど、長続きしないと恥ずかしいからアップするのを控えていた。 それなりに続いているし、このまま止まらないようにアップして自分を追い詰めることにした。 とりあえず1章から順番に。。。 Exercise 1.1 ​ 10 # -> 10 ​ (…

Katagaitai CTF勉強会 関東med (Crypt 理論編?)

先週末に行ってきた勉強会。とてもタメになった。 が、なかなか本腰いれて取り組めないので、少しずつアップすることにした。 今回は午前中のcryptについて、理論面を整理。 実装は、きっとこのあとやる・・・はず。 問題 CSAW CTF 2014 – Crypto300 – feal.…

SECCON 2015 online

前日が同期の結婚式で多忙だったので抜け殻状態でトライ。 二日酔いの寝不足で途中寝落ちたりしたので、実質3時間程度しか戦っていない。 結果、1問 300点しか取れませんでした。 やっぱ片手間じゃ太刀打ちできませんよねー。 # network 100 Entry form ## …

sqlite3のデータ型について

PC

いくつか驚いたことがあったので忘れないようにメモ。 結論 create文で存在しないデータ型を指定してもエラーにならない integer型のカラムに数字に出来そうにない文字列(e.g. sqlite)をぶち込んでもエラーにならない(text型で格納される) データ型は「そ…

SECCON2014 オンライン予選(en) QR300 SECCON Wars: The Flag Awakens

PC

スターウォーズのオープニングみたいなムービー。ただし、テロップの最後にQRコードっぽいのが見える。 そこで、フレームをJPGに切り出し ↓ 必要箇所だけトリミング ↓ つなげる ↓ 読み込む ↓ フラグ!ちなみにトリミングは IrfanViewを利用。 結合もフリーソ…

SECCON2014 オンライン予選(en) web300 Bleeding "Heartbleed" Test Web

PC

HeartBleedの脆弱性を持つサイトをテストする画面。 とりあえず、HeartBleedの脆弱性を持つVMを用意する。実際実行してみたところ、特にリクエストにフラグ等はない。 (リクエストのパディングにフラグ埋め込むのだろうと思っていたので調子はずれ)なんど…

SECCON2014 オンライン予選(en) nw300 Get from curious "FTP" server

PC

FTPサーバ。 でもftpコマンドでうまくいかず。なんとなく普通の挙動はしてない気がしたのでTelnetで接続。 telnet ftpsv.quals.seccon.jp 21もちろん裏ではwiresharkログインはanonymous とりあえず、普通使えるであろう LIST NIST ls が使えない。どうすっ…