Help us understand the problem. What is going on with this article?

OCamlを始める

More than 1 year has passed since last update.

OCamlの環境を構築する際のメモです。

ちなみに、私の環境は、

OS : Mac OS 10.9

インストール

OCaml

以下の本家サイトにインストール方法があります。

https://ocaml.org

rlwrap

rlwrapもインストールしましょう。
rlwrapは、ターミナルよりocamlシェルにいるときに、← ↑ → ↓などのキー入力ができるようにします。(これがないとこれらのキー入力をしても文字化けした内容が表示されるだけでした。)

rlwrap ocaml

ocamlを実行するときは上記のようにします。

alias ocaml="rlwrap ocaml"

と、上記のようにするととても便利です。

日本語の設定

設定内容は同じですが、設定を記述したファイルを実行時に渡す方法と、設定ファイルに予め記述しておく方法がありました。もちろん後者が楽だと思います。

1."ocaml -init" で設定ファイルを渡す

【設定ファイルの内容】

let printer ppf = Format.fprintf ppf "\"%s\"";;
#install_printer printer

上記をファイルにして起動時に呼び出す

ocaml -init ocaml_utf8.ml

2.ホームディレクトリの設定ファイル ".ocamlinit" に記述して起動時に読み込ませる。

$ cat .ocamlinit 
let printer ppf = Format.fprintf ppf "\"%s\"";;
#install_printer printer

【注意】設定内容2行目の#は必要です。

基本の基本

開始

$ ocaml
# 

終了

これがないと終わられへん。

exit 0;;

(* or *)

#quit;;
行の終わり
;;

コメント

上に出てきましたが、ocamlのコメントは

(* コメント *)

になります。

ファイルの読み込み

プログラムを記述した.mlファイルを読み込ませるには以下のようにします。

#use "file.ml";;

(ここでも先頭の#は必要です。入力は#から;;までです。)

基本

文字列

文字列はダブルクォーテーションで括ります。シングルクォーテーションだとエラーになります。

let str="wow";;

    

付録

AtomでOCaml

2017/04/08 追記 ====>
以下で使用する「Ocamltop HTML」は現在メンテナンスされておらず正常に動作しませんでした。
AtomでOcamlを使う場合はRepl (https://atom.io/packages/repl) を使うのがよいようです。
(私は試せていません。すみません。)

【参照】
https://github.com/etouss/atom-OcamlTopLevel/issues/2

なお、nnabeyangさんがご指摘くださいました。
ありがとうございました。
2017/04/08 追記 <====

GitHub製エディタ - Atom と拡張パッケージを使えば、シンタックスハイライトだけでなくOCamlで書かれたソースコードの実行・結果確認もできるようになります。

【インストールが必要なもの (OCaml周り)】
1. ocaml
2. opam (ocamlのパッケージ管理)
3. caml2html (2を使ってインストール)

opamの更新とcaml2htmlのインストール

ターミナルより以下のコマンドをそれぞれ実行しました。

opam init

opam update

opam upgrade

opam install caml2html

Atomパッケージのインストール

Atomで以下のパッケージを探してインストールします。

  1. Language Ocaml
  2. Ocamltop H T M L (https://github.com/tekdreamer/atom-OcamlTopLevel)

使い方

.mlファイルを開いてctrl + iを押すと、右に実行結果が表示されます。

ただし、日本語はそのままだとちゃんと表示できませんでした。
とりあえず、ソースコードの先頭に前出の日本語設定を入れるとちゃんと表示はできました。

対応方法:以下をソースコードの先頭に入れる。

let printer ppf = Format.fprintf ppf "\"%s\"";;
#install_printer printer;;
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away