2009年1月10日土曜日

【実践CL】11 コレクション


  • 前説

    • ANSIにコレクションという用語はあるのかな、Seaquencesというイメージがあるけど。調べる。HyperSpecにはなさそうだ。CLの用語としてではなく、プログラミング言語にまたがった一般的な概念として、ということなのだろう。

  • 11.1 ベクタ

    • elispではベクタはアトムだったが、CLでは?

      CL-USER(2): (vector 1)
      #(1)
      CL-USER(3): (atom (vector 1))
      T
      CL-USER(5): (atom (make-array 5 :fill-pointer 0))
      T
      CL-USER(8): (atom (make-array 5 :fill-pointer 0 :adjustable t))
      T
      CL-USER(9):

    • アトムだ!! adjustableなものもatomなのはちょっと驚いた。しかしsymbolも中身は書き換え可能だがatomだ。atomという概念は、中身の書き換え云々についてではなく、その表象というか表現というかなんというかについてのことなんだろう。

  • 11.2 特殊ベクタ

    • 特殊よりも特定とか特定化の方が訳としては好み。

  • 11.4 シーケンス反復関数

    • 特になし。

  • 11.5 さまざまな高階関数

    • 特になし。

  • 11.6 シーケンス全体の操作

    • 特になし。

  • 11.7 ソートとマージ

    • sortもstable-sotrも破壊的関数。

  • 11.8 部分シーケンス操作

    • 特になし。

  • 11.9 シーケンス述語

    • 特になし。

  • 11.10 シーケンスマッピング関数

    • ありmapcarは?と思い、HyperSpecを見ると、Sequencesのchapterにはmapとmap-intoしかない。調べるとConsesにあった。そうか、mapcarとかはconsesが対象だからね。
    • reduceの言葉のイメージが曖昧で、違和感がある。関数としての機能はわかるんだけど、なんでこれをreduceと呼ぶの? ということ。辞書を調べる。

      • reduce the speed. これは減ずる、という意味。なんか違う。
      • a beautiful building reduce to ashes. これはAをBにむりやり変える、ということ。ちょっと近いのかな。
      • reduce grapes to wine. これは分解する変形するということ。
      • これらを見てわかるとおりreduceにはより矮小な状態や要素的な状態に変えるというニュアンスがある。なので数学だと分数の訳文とか通分を指したりする。

    • うーん、やっぱりすっきりしない。

  • 11.11 ハッシュテーブル

    • 特になし。

  • 11.12 ハッシュテーブル上の反復

    • 特になし。


こつこつ。

0 件のコメント: