問題2.68 – SICP(計算機プログラムの構造と解釈)その80

問題2.68 記号が木に存在するかどうかを調べるには、ルートにある記号の集合のリストを最初に調べるとよい。 左部分木に記号が存在すれば左部分木をたどって行き、左部分木に無い場合は右部分木をたどって行く。 (define (encode-symbol symbol tree) (define (enc-iter tree) (if (leaf? tree) ‘() (if (memq symbol …続きを読む

スタイルシート(CSS)で作るドロップダウンメニュー(Drop Down Menu)

スタイルシート(CSS)だけでドロップダウンメニュー(Drop Down Menu)を作るメモ。 IE6 でのみ JavaScript を使っている(ie7-js – Google Code の IE8.js を利用)。 IE 以外ではドロップダウン部分の背景に透過PNGを利用している。 サンプルページ(Sample Page) スタイルシート(CSS) #mainmenu li { …続きを読む

問題2.64 – SICP(計算機プログラムの構造と解釈)その76

問題2.64a partial-tree はリストとその長さを引数として与えられ、長さからリストを半分に分ける。 中間の要素でエントリを、前のリストで左部分木を、後ろのリストで右部分木を作る。 結果は"エントリと左部分木と右部分木とで構成された木" と "木に含まれなかった要素から成るリスト" を cons したものを返す。 (define (list-&g…続きを読む

vim plugin (プラグイン) surround.vim の使い方メモ

vim plugin (プラグイン) surround.vim の使い方メモ vim plugin (プラグイン) surround.vim は、パーレン、ブラケット、クオート、xmlタグ、htmlタグなどの囲み文字に関する処理を簡単に行えるようにする。 インストールは ~/.vim ディレクトリでアーカイブを展開して、次のコマンドでヘルプタグを再生成する。 :helptags ~/.vim/do…続きを読む

問題2.62 – SICP(計算機プログラムの構造と解釈)その74

問題2.62 set1 が空集合の場合は set2 を返す。 set2 が空集合の場合は set1 を返す。 set1 の最初の要素と set2 の最初の要素が等しい場合は、"set1 の最初の要素"と "set1、set2 の残りの要素のリストの和集合から成るリスト"を返す。 set1 の最初の要素が set2 の最初の要素より小さい場合は、"s…続きを読む