Program > OCaml
2018-11-18 (日) 公開
2020-06-19 (金) 更新
OCamlとは? †
https://ja.wikipedia.org/wiki/OCaml
OCaml(オーキャムル、オーキャメル)は、フランスの INRIA が開発したプログラミング言語MLの方言とその実装である。
MLの各要素に加え、オブジェクト指向的要素の追加が特長である。
かつては Objective Caml という名前で、その略として OCaml と広く呼ばれていたが、正式に OCaml に改名された。
公式サイト †
- OCaml
https://ocaml.org/
- OCaml.jp
http://ocaml.jp/
リファレンス / チュートリアル †
- OCamlチュートリアル – OCaml
https://ocaml.org/learn/tutorials/index.ja.html
- 「プログラミングの基礎」を使った授業紹介
http://pllab.is.ocha.ac.jp/~asai/book-mov/
- 京都大学工学部専門科目「プログラミング言語」講義資料(2018年度)
https://github.com/aigarashi/PL-LectureNotes
- 2015年度 筑波大学 ソフトウェア技法・OCaml入門
http://www.math.nagoya-u.ac.jp/~garrigue/lecture/tsukuba16/
- お気楽 OCaml プログラミング入門
http://www.geocities.jp/m_hiroi/func/ocaml01.html
PDF(英語) †
- Introduction to Objective Caml
http://courses.cms.caltech.edu/cs134/cs134b/book.pdf
- Developing Applications With Objective Caml
http://caml.inria.fr/pub/docs/oreilly-book/
Tips †
- OCamlの実行環境
- OCaml学習メモ 学ぶ前に仮説を立てて、実際にやってみて検証する方式
OCamlを選ぶ理由 †
- SCamlによるTezosプログラミング#0 - DaiLambda, Inc.
https://www.dailambda.jp/blog/2020-02-01-scaml-jp-0/
だからOCaml
- C系(C++/C#)のポインタ、リファレンスは必要ありません。
- 型の無いスクリプト言語で手軽にスマートコントラクトを書いてバグらせたくはない。
- Scalaはクラス部分が余分。
- 手続き型言語はプログラムの意味解析が人間、機械共に難しい。
- Erlangのような並列計算への利便性は必要ない。
- Haskellは遅延評価が相性が悪い。
- SMLは形式的検証にはIsabelleがあるが、OCaml x Coqと比べると人気ではどうしても劣る。
- Rustが提供するポインタ安全性やリソース安全性は純粋関数型スタックVMでの実行モデルにおいては価値がない。
参考書 †
- プログラミングの基礎(目次)
![]() |
プログラミングの基礎 ((Computer Science Library)) 浅井 健一 サイエンス社 2007-03-01 ¥ 2,484 |
- プログラミング in OCaml(目次)
![]() |
プログラミング in OCaml 〜関数型プログラミングの基礎からGUI構築まで〜 五十嵐淳 技術評論社 2014-12-09 Kindle 価格: ¥ 1,512 |
![]() |
プログラミング言語の基礎概念 ((ライブラリ情報学コア・テキスト)) 五十嵐 淳 サイエンス社 2011-07-01 ¥ 1,998 |
![]() |
OCaml from the Very Beginning (English Edition) John Whitington Coherent Press 2013-06-20 Kindle 価格: ¥ 3,152 |
![]() |
Real World OCaml Yaron Minsky / Anil Madhavapeddy / Jason Hickey O'Reilly Media 2013-11-25 ¥ 4,897 |
「Real World OCaml」は、Web版が公開されているので無料で読める。
- Real World OCaml https://realworldocaml.org/
- 第1版 Table of Contents / Real World OCaml https://v1.realworldocaml.org/v1/en/html/index.html
- 第2版 Real World OCaml http://dev.realworldocaml.org/toc.html
