vim plugin (プラグイン) surround.vim の使い方メモ
vim plugin (プラグイン) surround.vim の使い方メモ vim plugin (プラグイン) surround.vim は、パーレン、ブラケット、クオート、xmlタグ、htmlタグなどの囲み文字に関する処理を簡単に行えるようにする。 インストールは ~/.vim ディレクトリでアーカイブを展開して、次のコマンドでヘルプタグを再生成する。 :helptags ~/.vim/do…続きを読む
vim plugin (プラグイン) surround.vim の使い方メモ vim plugin (プラグイン) surround.vim は、パーレン、ブラケット、クオート、xmlタグ、htmlタグなどの囲み文字に関する処理を簡単に行えるようにする。 インストールは ~/.vim ディレクトリでアーカイブを展開して、次のコマンドでヘルプタグを再生成する。 :helptags ~/.vim/do…続きを読む
問題2.62 set1 が空集合の場合は set2 を返す。 set2 が空集合の場合は set1 を返す。 set1 の最初の要素と set2 の最初の要素が等しい場合は、"set1 の最初の要素"と "set1、set2 の残りの要素のリストの和集合から成るリスト"を返す。 set1 の最初の要素が set2 の最初の要素より小さい場合は、"s…続きを読む
問題2.61 x に等しいか x より大きなものが見つかれば走査は終了する。 最悪の場合は集合の大きさ n のステップ数になるが、平均すると n/2 のステップ数となる。 (define (adjoin-set x set) (cond ((null? set) (list x)) ((= x (car set)) set) ((< x (car set)) (cons x set)) (e…続きを読む
問題2.60 重複の許されるリストで集合を表す。 element-of-set?、intersection-set はそのままでよい。 重複を許すと結果のリストが大きくなり、要素の検索等の効率が悪くなる。 (define (adjoin-set x set) (cons x set)) (adjoin-set ‘1 ‘(1 2 3 4 5)) gosh> (1 1 2 3 4 5) (def…続きを読む
2.3.3 例:集合の表現 – 順序づけられないリストとしての集合 intersection-set 手続き set1、set2 のいずれかが空集合ならば ‘() を返す。 set1 の最初の要素が set2 に含まれていれば、"set1 の最初の要素" と "set1 の残りの要素と set2 との積集合" とから成るリストを返す。 それ以外の…続きを読む
問題2.58 a. 式は完全に括弧に囲まれている場合 (define (make-sum a1 a2) (list a1 ‘+ a2)) (define (make-product m1 m2) (list m1 ‘* m2)) (define (sum? x) (and (pair? x) (eq? (cadr x) ‘+))) (define (addend s) (car s)) (defi…続きを読む
問題2.57 和の表現の改良 ; 元の被加数 (define (augend s) (caddr s)) ; 任意個の項の和を扱えるようにした被加数 (define (augend s) (if (null? (cdddr s)) (caddr s) (cons ‘+ (cddr s)))) 積の表現の改良 ; 元の被乗数 (define (multiplicand p) (caddr p)) ;…続きを読む
問題2.56 べき乗(冪乗 – Wikipedia): base ^ exponent (baseexponent) べき乗は最初の要素が ** のリスト。 (define (exponentiation? x) (and (pair? x) (eq? (car x) ‘**))) 底(基数)はべき乗のリストの第2項。 (define (base s) (cadr s)) 指数はべき乗…続きを読む
問題2.53 (list ‘a ‘b ‘c) gosh> (a b c) (list (list ‘george)) gosh> ((george)) (cdr ‘((x1 x2) (y1 y2))) gosh> ((y1 y2)) (cadr ‘((x1 x2) (y1 y2))) gosh> (y1 y2) (pair? (car ‘(a short list))) g…続きを読む
問題2.52 a. wave に笑っているような線分を加える (define wave (segments->painter (list (make-segment (make-vect 0.35 0.85) (make-vect 0.40 1.00)) (make-segment (make-vect 0.65 0.85) (make-vect 0.60 1.00)) (make-segm…続きを読む