『Scheme手習い』読書会 第9回
『Scheme手習い』読書会の9回目です。範囲としては7章頭(P112)〜7章途中(P119)です。
7章は集合(set)ですかね。重複のないlat。集合演算(intersect,union)などが出てきています。
- 7章 友達と親類
- 関数set?の定義:setなら#tを返す。member?を使用して定義。
- 関数makesetの定義:latを受け取り重複を排除してsetを返す。member?を使用した定義とmultiremberを使用した定義がある。(P114の結果の例が間違っているような……)
- 関数subset?の定義:setを2つ受け取り、1つ目のsetの各要素が2つ目のsetにすべて含まれていれば#tを返す。
- 関数eqset?の定義:setを2つ受け取り、すべて同じ要素からなるsetなら#tを返す。順不同です。subset?を使って簡単定義ですね。
- 関数intersect?の定義:setを2つ受け取り、一つでも同じ要素を持つsetなら#tを返す。
- 関数intersectの定義:setを2つ受け取り、2つのsetに共通の要素のリスト(当然setになる)を返す。積。
- 関数unionの定義:setを2つ受け取り、2つのsetから重複のないsetを作成し、返す。和。
- 差を取る関数の名前が聞かれた。minus?でいいのかな。答えなし。
- 関数intersectallの定義:setのリストを受け取り、すべてのsetに共通の要素を持つsetを返す。
以前も書いた通り、僕はMeadowを使用しています。しかし、ろくに操作ができなくてもどかしいです。覚えてきた操作をメモしておきます。
- 上下左右(C-p,C-n,C-b,C-f)
- 行頭行末(C-a,C-e)
- PgUp(M-v)、PgDn(C-v)
- 1行切り取り(C-k)
- 貼り付け(C-y)
- マークする(C-SPC)
- マークからカーソルまでを切り取り(C-w)
- ファイルを開く(C-x C-f)や上書き保存(C-x C-s)
- 他のバッファへ(C-x o)
少しずつ覚えています。ただ覚えるより先に左手小指がダメになりそうです。そろそろCtrlを親指にすると思います。