練習問題 15.2 銀行プログラムの改造(2) リストボックス 解答 バッチコンパイラ用ファイル 練習問題5.1 と 5.2 でできたプログラムをバッチコンパイラ用にまとめたものを以下に残しておく。コンパイルでは、lab […]
『プログラミング in OCaml』練習問題
練習問題 15.1 labltkライブラリでGUI
練習問題 15.1 銀行口座プログラムの改造(1) 銀行口座プログラムを改造して、残高がマイナスになった時に、(終了するのではなくて)残高表示の文字が赤になるようにしなさい。 ポイント 改造した点 残高がマイナスになると […]
練習問題 14.3 (2) 拡張リストを扱うmap関数
練習問題 14.3 (2) 拡張リストの map関数 max や map関数の拡張リストに対しての定義を、上の length、alength と同じように、差分(`App の場合のみ)を記述するように定義しなさい。 解答
練習問題 14.3 (1) 拡張リストを扱うmax関数
練習問題 14.3 (1) 拡張リストのための max_list関数 max や map関数の拡張リストに対しての定義を、上の length、alength と同じように、差分(`App の場合のみ)を記述するように定義 […]
練習問題 14.2 拡張リストを使う
練習問題 14.2 拡張リスト 拡張リストを単なるリストに変換する関数 list_of_alist を定義しなさい。 解答
練習問題 14.1 多相ヴァリアントのリストを使う
練習問題 14.1 `Nil、`Cons を使ったリスト `Nil、`Cons を使って表現されるリストに対して、append、map、downto1関数を定義しなさい。(第5章参照) 解答
練習問題 12.2 クラスとメソッドの修正
練習問題 12.2 電卓プログラムcalc この章でみた電卓の定義では、1+2+3 のような連続した演算をおこなうことができません。 のような呼び出しで計算ができるように改造しなさい。 解答
練習問題 12.1 クラスとメソッドの修正
練習問題 12.1 calcの定義 以下の calc の定義のおかしな点を指摘せよ。 解答 num を x に入れておかないと、次の input メソッドで新しい値が num にセットされてしまう。
電卓プログラム
プログラミング in OCaml メモ 12.2 自分自身のメソッドを呼び出す 12.2.1 補助的メソッドと private メソッド ここで、電卓プログラムを例にして説明がされてあるけど、電卓プログラムの仕組みについ […]
練習問題 11.4 組を引数にとるファンクター
練習問題 11.4 (NaiveSig が与えられていない生の)BadPair が、ファンクター MakeTest に渡せないことを確かめなさい。 問題文の環境を以下のように想定する BadPair を以下のように定義す […]
練習問題 11.2 ファンクターの各関数を作る
練習問題 11.2 ファンクターをつくる MakeAbstractSet の機能を拡張して、下に示すシグネチャ SET の各関数をコメントに従って定義しなさい。また、整数の集合モジュールをファンクター適用によって生成して […]
練習問題 11.1 ファンクターに与える引数のシグネチャを指定する
練習問題 11.1 ファンクタの引数にシグネチャを与える 下の のように、MakeSet に与える引数のシグネチャを OrderedType として明示的に指定した場合、このモジュール IntSet’ は、I […]
ファンクターを自作する
プログラミング in OCaml メモ 『プログラミング in OCaml』のファンクターのところは、とてもややこしい。整理してみた。 作成するファンクターの仕様 名前: MakeSet 機能: empty, mem, […]
モジュールにシグネチャを与える方法
プログラミング in OCaml メモ モジュールにシグネチャを与えるのに、いろいろな書き方があるということで、整理したみた。 1) 方法1 2) 方法2 3) 方法3 4) 方法4 5) その他 方法4の、元モジュール […]
ファンクターとは?
プログラミング in OCaml メモ 『プログラミング in OCaml』を呼んでて、ファンクターのところが難しかったので、頭を整理してみた。 ファンクターとは? 「要素型に関するモジュール」から「その型を要素とする集 […]