1-2. OCaml を使うための準備

起動と終了

情報科学類計算機システム(coinsシステム)には、OCaml がインストールされているので、 特に何もセットアップしなくても OCaml を動かすことができる。 (自分のPC そのものに OCamlをインストールする方法は、後に述べる。) このためには、まず、自分のPC で ssh (暗号をつかった安全な遠隔ログイン) を使って coinsシステムのPCのどれかにログインする必要がある。 自分の統一認証アカウント名を abc とすると、
% ssh abc@azalea01.coins.tsukuba.ac.jp
とすると、azalea01 という coinsマシンに遠隔ログインできる。 (azalea01 のところは azalea02 などでもよい。) 遠隔ログインを終了したら、exit とするとよい。

OCaml処理系の起動コマンドは、小文字で ocaml である。 (なお,emacs エディタを立ちあげて、その中から OCamlを 便利に使う方法があるので、後述する。)

% ocaml
        OCaml version 4.13.1

# 1 + 2 * 3;;
- : int = 7
# print_string "abc\n";;
abc
- : unit = ()
#
対話モードでは、ユーザの入力に応じて OCaml処理系が計算を行い、 結果の値とその型を表示する。(計算結果だけでなく、型も表示するところが、OCaml らしいところである。)

# はプロンプトである。上記の最初の例では、1 + 2 * 3;; が入力であり、 7 が結果(値)、int がその型である。2つ目の例では、print_string "abc\n";; が入力であり、その実行の際に abc という文字列が表示される。 (実際には abc という文字列のあとに改行コードが出力されている。) この場合、計算結果は無意味な値 () であり、その型は unit である。

この2つの計算だけでも、「型」とは何か、- (マイナス)の記号は何だろう、等々の疑問がわいてきたと思うが、 それらは後述するか各自調べてもらうことにして、 ここでは、処理系の終了方法をチェックしておこう。

OCamlを終了したい時は、 正式には #quit ;; と入力するが、もっと簡単に、 control-D (control キーを押しつつ "D" を押す)を入力してもよい。 なお、shell から control-Z を入力することにより、 OCaml処理系を中断することもできるが、 多数の OCaml処理系プロセスを中断したままでいると、計算機に大きな負荷をかけてしまうことがある。

プログラムのファイルの作成と読み込み

上記のように、短いプログラムのテストの時には対話モードが良い。 一方、レポート課題など、まともな(長い)プログラムを書いて、何度も修正 したりするときは、プログラムをファイルに書きこんで、 そのファイルを OCamlから読み込むという方法が良い。 この読み込み操作も、対話モードから行う。 なお、OCamlプログラムを格納するファイルは、拡張子を .ml とすること。
# #use "myprogram.ml";;
# が2つ重なっていて読みにくいが、1つ目の # はOCamlプロンプトであり、そ のあとがユーザの入力である。つまり、 上記のものは、#use "myprogram.ml" というコマンドを入力したものである。 このようにすると、 (現在の directory の下にある)"myprogram.ml" というファイルを読み込み、上から順番に実行してくれる。 なお、絶対パスを記述することもできる。
# #use "/home/prof/kam/ocaml/myprogram.ml";;

ファイルの中には、OCaml の式を何個でも記述してよい。 ただし、読み込みながら実行していくので、 途中でエラーとなる式があると、そこで読み込みを終了してしまう。

区切りとしての ;; についての注意. 対話モードで入力するときは、 1つの式を入力し終わるごとに ;; (セミコロンを2つ連続)をタイプする必要があるのに対して、 ファイルにたくさんの式を続けて書く時には、 (もし、OCaml処理系が区切りを自動的に認識できるなら) ;; で区切る必要はない。 この理由により、本実験で提供するソースコードでは、;; で区切っていない式たちもときどき登場する。 このようなコードを、対話モードで直接入力してテストしようと思ったら、 当然、;; で区切る必要があるので注意されたい。

emacs からの便利な使い方

emacs から OCamlプログラムの編集をするために便利なツールとして、tuareg-mode というものがある。

進んだ使い方

自分のPCでOCamlを動かす方法: Linux/MacOS

OCamlの処理系を自分のPC にのせて動かす方法を以下に記述する。 まず、opam (OCaml専用のパッケージ管理システム)をのせよう。 このためには、それぞれのOSで提供されるパッケージシステムをつかうとよい。
Debian Linux or Ubuntu Linux の場合
  % apt install opam   (あるいは apt-get install opam)
  % opam init (初期化、結構時間がかかる)
 (メッセージの最後で以下のコマンドを実行せよ、と言われるので、そのまま
  タイプする。以下のものは一例であり、違うものが表示されるかもしれない。)
  % eval $(opam env --switch=default)
MacOS の場合
  % brew install opam
  % opam init (結構時間がかかる)
 (メッセージの最後で以下のコマンドを実行せよ、と言われるので、そのまま
  タイプする。以下のものは一例であり、違うものが表示されるかもしれない。)
  % eval $(opam env --switch=default)
LinuxでもMacOSでも、上記の後、ocaml とやって動けば成功である。 opamは、OCaml処理系本体以外にも、OCaml関連の様々な便利なツールをインス トールすることができる。ただし、調子にのって、大量にのせてしまうと、 ディスクスペースを使いすぎるかもしれない。 opamでインストールされたものは、~/.opam の下に置かれる。 これ以外の情報は、 OCaml の開発元のページ を見るか、あるいは、インターネットで、インストール方法のガイドが書いてあるページを探して欲しい。

自分のPCでOCamlを動かす方法: Windows

(Credit: この項目は 2024年度TAの李君が執筆してくれたものである。)

Windows上でOCamlを動かしたい場合、WSL などのLinux環境を使えば上記のようにOCamlをインストールできる。ここでは、VMやWSLを使わずにOCamlを Windowsにのせる方法を記述する。

  1. PowerShellを起動する

    タスクバーの検索ボックスに(あるいは「WindowsキーとQ」を同時に押して表示された検索窓に) powershellを入力して、シェルを起動する。うまく行かない場合はマイクロソフトの この記事 を参照すること。

  2. Opamをインストールする

    ネットワークに接続して、PowerShellで下記のコマンドを実行する。コマンドは対話形式なので、 表示される項目を入力する(デフォルト値で良い場合、単にEnterキーを押す)。

        % Invoke-Expression "& { $(Invoke-RestMethod https://raw.githubusercontent.com/ocaml/opam/master/shell/install.ps1) }"
          
  3. OCamlをインストールする

    次に、下記のコマンドを入力してOCamlをインストールする。デフォルトでは、このコマンドは必要な Linux環境(cygwin, gitなど)も一緒にインストールする。そういうプログラムをインストール したくない場合(既にインストールされている場合)、対話モードで表示される項目で調整すること。

        % opam init # (結構時間がかかる)
          
  4. 環境変数を更新する

    下記のコマンドを実行する。このコマンドは毎回新しいPowerShellを起動する際に 実行する必要がある。

        % (& opam env --switch=default) -split '\r?\n' | ForEach-Object { Invoke-Expression $_ }
          

上記の後、ocamlをタイプして動けば成功である。なお、 手順(4)を毎回やるのが面倒な人は、 そのコマンドをPowerShellのプロファイルに書き込んで、 PowerShellを起動する際に自動的に実行するようにできる。 具体的には、PowerShellに

    % echo $PROFILE
  

を実行して、出力されたパス(ファイル名を含む)のファイルを作成する。そのファイルに手順(4)の コマンドを書き込めば良い。次からは、PowerShellを起動する毎に環境変数を設定する必要がなくなる。

参照リンク:OCaml本家:How to install opam


トップ, 前へ, 次へ.

亀山 幸義