『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を親指にすると思います。

追記:『Scheme手習い』読書会 第10回