Monthly Archives: 4月 2013

「プログラミングの基礎」第25回(4/16)

Posted on by 0 comment

参加者 沼田(読み手)、今井(記)
範囲 pp.255-266

第23章 副作用命令を使ったプログラミング

  • 23.3 ヒープへの挿入
  • 23.4 その他の操作
  • 23.5 ヒープのインタフェース
  • 23.6 副作用命令の影響について
  • 23.7 ヒープの実装の概要
    • p.262 l.9
      int refは配列の最後の要素にアクセスするためではなく、配列中で現在ヒープで使用している最後の要素の次の要素にアクセスするため。(配列の最後の要素だとlength nに対し常に.(n-1)の要素になると思う。)
    • p.262 問題 23.2
      「小さい順にリストに入っていくので、結果として大きい順に整列したリストを得ることができる」のはなぜ?
      → consでリストの頭につけていくということを、「小さい順にリストに入っていく」と言っているのだろう。

第24章 まとめ — プログラミングとは —

  • 24.1 OCamlを習得して
  • 24.2 この先の道

読了

 

 

「プログラミングの基礎」第24回(4/12)

Posted on by 0 comment

参加者 今井(読み手)、沼田(記)
範囲 pp.243 – 255

第22章 値の書き変えと参照透過性

  • 22.1 参照透過性
  • 22.2 呼び出し回数のカウント
    • p.245 fibの実装
      再帰呼出をする際、c0とかc1ではなく0を渡し、c0+c1+c2を返すようにすれば、inをつかわないで並列実行できるのでは?
  • 22.3 参照型と値の書き変え
  • 22.4 参照透過性の喪失
  • 22.5 変更可能なレコード
  • 22.6 配列
    • p.252 要素の呼び方
      配列の要素を「○番目」で呼ぶときにときに添え字が3のデータを3番目と呼ぶのは違和感がある。
      [|要素0; 要素1; 要素2; …; 要素n|]があり、要素iはi+1番目の要素なのでは?
  • 22.7 配列の変更

第23章

  • 23.1 ダイクストラ法におけるデータアクセス
  • 23.2 ヒープ

「プログラミングの基礎」第23回(4/9)

Posted on by 0 comment

参加者 沼田(読み手)、今井(記)
範囲 pp.229-242

第20章 モジュールの開発

  • 20.5 赤黒木のモジュール化
  • 20.6 open文

第21章 逐次実行

  • 21.1 副作用を持つ関数
  • 21.2 unit型
  • 21.3 逐次実行の構文
    • p.235 中程
      引数の式の値を無視する関数、

      # ignore;;
      – : ‘a -> unit = <fun>

      というのがあって、わかっていて副作用だけ使いたいときには使用すると良いです。

  • 21.4 実行中の変数の表示
    • p.236 GCDのコード
      m ≧ n を前提にしている? → m < n のとき (m mod n) = m だから、gcd n (m mod n) は最初の再帰で gcd n m になるので、OK。
  • 21.5 実行の順序
  • 21.6 スタンドアローンのプログラム
  • 21.7 引数の渡し方
    • p.214
      main関数のシグニチャが変わること(決まっていないこと)に違和感がある。→ CやJavaなどとは違いmainという関数名自体にも意味はない。

「プログラミングの基礎」第22回(4/5)

Posted on by 0 comment

参加者 今井(読み手)、沼田(記)
範囲 pp.221 – 229

第19章 モジュール

  • 19.6 ファイルの分割と分割コンパイル
  • 19.7 2分探索木モジュールの使用
    • OcamlMakefileはOcaml用のMakefile。
    • TreeモジュールのMakefileでSOURCESに.mliを書いているが必要?

第20章 モジュールの開発

  • 20.1 赤黒木
    • 黒の頂点しか現れていなければ完全にバランスした木になるのは何故?木の根から空の木に至るすべてのパスにおいて黒い頂点の数はおなじだから?
  • 20.2 赤黒木への挿入
  • 20.3 赤黒木の再構成
  • 20.4 「または」のパターン
    • 複数のパターンは改行して縦に並べることもできる。
    • balanceで赤の頂点が続くパターンをマッチングしているが、insertしたときに赤が続いたことを返してあげたほうが効率がよいのでは?

「プログラミングの基礎」第21回(4/2)

Posted on by 0 comment

参加者 沼田(読み手)、今井(記)
範囲 pp.211-220

第19章 モジュール

  • 19.1 モジュールの構文
    • p.213 19.1の最後
      「モジュールは、オブジェクト指向言語におけるオブジェクトに近いものと考えることもできます。」には違和感がある。
  • 19.2 2分探索木のモジュール
  • 19.3 モジュールインタフェース:シグネチャ
    • p.217 上のコード
      (Tree : Tree_t)のようにコロンの後にタイプを書く文法ってここまでに説明あった?
  • 19.4 抽象データ型
    • p.219 中程下
      この本では情報をコメントで書くことはよく推奨されているが、変数名や関数名などに適切な名前をつけることには触れられていない。何を表しているか、何をするかを表す適切な名前をつけることは重要だと思う。関数型言語では名前はあまり重要視されていない?
  • 19.5 そのほかのシグネチャの宣言法