32. OCaml

手軽でありながら高度に構造化されたプログラムが書けるOCamlという言語を学びます.

32.1 OCamlプログラムの作成と実行

まず一番簡単な例として, 一日の秒数をコンピュータに計算させてみましょう. 要するに, 60×60×24を求めるわけです. 31.1 Java プログラムの作成と実行では, ソースコードをファイルにしてコンパイラで変換を […] (このページを読む)

32.2 整数とその計算

最初のプログラムで確認した通り, OCamlでは数式がそのままプログラムになり, 入力するとその値を計算してくれます. 正確には整数を使う限りにおいてはほぼ同じです. 足し算・引き算よりもかけ算・割り算の方を先に計算する […] (このページを読む)

32.3 小数とその計算

10年や100年, 1000年の秒数について先ほどは1年を365日として計算しましたが, 閏年の効果を考えて1年を平均365.24日として計算した方がより正確な値が求まることが期待できます. つまり, 小数を使いたいとい […] (このページを読む)

32.4 関数の利用

ここまでの内容で, 整数と小数およびそれらの四則演算はできるようになりましたが, 計算の種類はたくさんあり四則演算だけでは対応できないものがあります. 例えば, 計算に平方根を使いたいときは, 四則演算でも「開平法」や「 […] (このページを読む)

32.5 変数の定義と参照

数式が複雑になってくると, その式が何を計算しているかが分かりにくくなります. このような場合, 値に名前を付けることで計算の意図をはっきりさせることができます. 例えば, 「40人の学生が1時間のうち50分働き10分休 […] (このページを読む)

32.6 関数の定義

2次方程式“x2+2x+1=0”の解を計算させてみましょう. 一般に, 2次方程式“ax2+bx+c=0”の解は“(-b±√(b2-4ac))/2a&#8221 […] (このページを読む)

32.7 ソースファイルの作成と読み込み

大きなプログラムを作る場合には, テキストエディタなどを使ってソースコードを書いたファイル(ソースファイル)をあらかじめ作成しておきます. 変数や関数の定義を1つ1つキーボードから入力するかわりに, そのファイルを読み込 […] (このページを読む)

32.8 条件と真偽値

2次方程式“ax2+bx+c=0”は, a, b, cの値によって(実数範囲での)解が2つだったり, 1つだったり, 1つもなかったりします. “x2-5x+6=0”は2個 […] (このページを読む)

32.9 条件分岐

2次方程式“ax2+bx+c=0”に対して解の個数を求める関数を作ってみましょう. ここまでで見てきたように, 解を0, 1, 2個持つ場合の条件をそれぞれ式として書くことができていますので, あ […] (このページを読む)

32.10 プログラム実行の処理

ところで, コンピュータはプログラムをどのように動かしているのでしょうか. OCamlインタープリタに式を入力するとその計算結果しか表示されないので, 中でどのような計算をしているのかはブラックボックスのような状態です. […] (このページを読む)

32.11 再帰関数の定義

ここでは, フィボナッチ数の計算をしてみましょう. フィボナッチ数とは, ある数列の値のことで, 1つの項はその1つ前と2つ前の項の和になっているようなものを言います. 通常は最初2つの項を0, 1とするので, 0, 1 […] (このページを読む)

32.12 繰り返し

計算機の大きな特徴は, 同じまたは似たような処理の繰り返しが高速にできることです. 1つの例として, 1から100までの和, つまり“1+2+…+99+100”を求めてみましょう. も […] (このページを読む)

32.13 繰り返しその2

一般に, 「変数“i”が“1”から“n”まで動きながら各々順番に処理を行う」という繰り返し処理は, 次のようにして再帰関数で書くことができます. l […] (このページを読む)