練習問題 10.2 バッチコンパイラでwcコマンドを作る

練習問題 10.1 wcコマンド UNIX の wc コマンドは、ファイル名の列を引数として、それぞれのファイルの行数(改行文字の数)、空白で区切られた単語の数、バイト数を表示するものです。これを OCaml で実装し、 […]

練習問題 10.1 バッチコンパイラでcatコマンドを作る

練習問題 10.1 catコマンドをつくる UNIX の cat コマンドは、ファイル名の列を引数として、その内容を順次表示する(標準出力に書き込む)ものです。これを OCaml で実装し、実行可能ファイルを作成しなさい […]

練習問題 9.4 シグネチャの実用性

練習問題 9.4 シグネチャの実用性 次の抽象データ型を表す、ふたつのシグネチャをもつモジュールは、どちらもあまり実用上意味がありません。なぜでしょうか?(ヒント:empty や add のない TABLE モジュールを […]

練習問題 9.3 キュー構造のモジュールを定義する

練習問題 9.3 モジュールとシグネチャを使ったキューリスト 以下は、書き換え可能データを使わないキューのシグネチャです。add などは要素を追加した新しいキューを返すようになっています。 このシグネチャを持つモジュール […]

練習問題 9.2 シグネチャを使う

練習問題 9.2 二分探索木を使ったテーブル 二分探索木を使ったテーブルを、シグネチャとして TABLE2 を与えたモジュールとして実装しなさい。そして、各関数が機能していることを確かめなさい。 解答 実行例 解答中、シ […]

練習問題 9.1 (1) Newton-Raphson法

練習問題 9.1 ニュートン法 (任意精度の)有理数計算を行う Num モジュールを使って、3.6.5 節で取り上げた Newton-Raphson 法のプログラムを書き直しなさい。いくつか使うであろう関数を下に挙げてお […]

ニュートン法について(メモ)

ニュートン法について勉強したので、そのメモ。 ニュートン法の考え方 f(x) = 0 になるような値 x を探す時、ある値 x1 における接線の切片 x2 は、元の値 x1 より真の値 x に近くなる まず、以下のような […]

練習問題 8.12 ファイルの内容をコピーする

練習問題 8.12 二つのファイル名を引数にとって、片方のファイルの内容をもう片方にコピーする関数 cp を定義しなさい(一度開いたファイルは最後に閉じることを忘れないように)。 解答 実行例

練習問題 8.11 ファイルの内容を読み取る

練習問題 8.11 ファイル名を引数にとって、そのファイルの内容を行番号付きで表示させる関数 display_file を定義しなさい。 予備知識 ファイルは、チャンネルに結び付けられる。そのチャンネルを oc とする。 […]

練習問題 8.8 配列の各要素に対する処理、unit型

練習問題 8.8 関数 array_iter を改造して、関数 array_iteri を定義しなさい。この関数は、各要素に関する動作として、要素そのものだけでなく、その要素が何番目の要素なのかを表す整数も引数とします。 […]

練習問題 8.7 配列の各要素に対する処理、unit型

練習問題 8.7 リストに対する繰り返し iter を参考にして、配列要素に対して繰り返し処理を行う array_iter を定義しなさい。 (ヒント:配列の長さの求め方がわからなければ、長さを越えた要素アクセスで例外が […]