サーチ…


こんにちは世界

この例では、 OCamlインストールしたことを前提としています。

OCamlコードのコンパイル

次の内容のhello.mlという名前の新しいファイルを作成します。

print_string "Hello world!\n"

ocamlcはOCamlコンパイラです。このスクリプトをコンパイルして実行するには、

$ ocamlc -o hello hello.ml

結果のバイナリを実行します

$ ./hello
Hello world!

OCamlコードの実行

バイナリにコンパイルせずにこのスクリプトを実行することもできます。あなたは使用して行うことができocaml OCamlでの対話的な使用を可能にし、OCamlのトップレベルのシステムを。あなたのシェルでは、単に実行する

$ ocaml hello.ml
Hello world!

REPLでは

新しいシェルを開き、 ocamlと入力してトップレベルシステムを開きます。セッションに入ると、同じプログラムを入力することができます:

       OCaml version 4.02.1

# print_string "hello world!\n";;

Enterキーを押して式を評価し、印刷をトリガーします。

hello world!
- : unit = ()

成功! hello world!しかし、 - : unit = ()については何ですか? OCamlには文がなく、すべてが型付きの値に評価される式です。この場合、 print_stringstringを入力として受け取り、 unitを返します。 unitは、1つの値() (単位ともいいます()取ることができるタイプとみなし、意味のある値を返さない完成した計算を表します。

この場合、 print_stringには入力として受け取った文字を画面にprint_stringもあります。これが最初の行を見る理由です。

REPLを終了するには、 ctrl+D押します。

Unixスクリプト

OCamlスクリプトを作成する方法は2つあります。最初はシステムトップレベル( apt-getようなパッケージマネージャによって提供されます)を使用し、2番目はOPAMが提供するトップレベルを使用します

システムトップレベルを使用する

あなたの好きなエディタを開き、以下を書いてください:

#!/usr/bin/ocaml

print_string "hello worlds!\n";;

その後、 chmod +x your_file.mlを使用し、. ./your_file.mlスクリプトを実行することができます。

OPAMが提供するトップレベルを使用する

#!/usr/bin/env ocaml

print_string "hello worlds!\n";;

大きな違いは、あなたのトップレベルのバージョンです。実際、特定のスイッチ( opam switch 4.03.0 )でOPAMを設定した場合、スクリプトはOCaml 4.03.0を使用します。最初の方法では、例えばDebian Sidでは、スクリプトはOCaml 4.02.3を使用します。

あなたは置き換えることができシェバングを#!/usr/bin/env utop使用するutop代わりにバニラトップレベルを。

〜する

utopはディストリビューションの外にある別のocamlトップレベルです。つまり、あなたはutopをダウンロードしてインストールする必要があります(簡単な方法はOPAM: opam install utopを使用opam install utop )。 utopは、歴史的な、完成した、インタラクティブなライン編集といった多くの機能があります。

あなたがocamlコードを簡単に試してみたいのであれば、 utopが最高です。

なぜutopないocaml

あなたが上記のようなocamlスクリプトを望むなら、 utopocamlは大きな違いはありません。しかし、OCamlコミュニティの共通点は、 ocaml代わりにutopを使うことutop

実際、 ocaml REPLはocamlディストリビューションによって提供されています。したがって、このREPLはコンパイラのリリース・サイクルに従います。また、いくつかの追加機能が必要な場合は、コンパイラの次のリリースを待つ必要があります。 utop説明したようにutopはディストリビューションの外にあるので、リリースサイクルはコンパイラによって制約されておらず、余分な機能が必要な場合は、 ocaml :)よりもutop中でこの機能をプッシュしようとします。

この時点(および歴史的な機能のための)OCamlのコミュニティのほとんどの人が使用することを好むutopよりocaml



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow