Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
関数型初心者におすすめしたい "OCaml"
Search
cedretaber
July 29, 2019
Programming
1k
1
Share
関数型初心者におすすめしたい "OCaml"
cedretaber
July 29, 2019
More Decks by cedretaber
See All by cedretaber
猫とたはむれる
cedretaber
2
940
3ヶ月間Scalaと付き 合って感じた事 ……という発表を想定していたのですが
cedretaber
3
3.2k
Other Decks in Programming
See All in Programming
存在論的プログラミング: 時間と存在を記述する
koriym
5
730
ローカルで稼働するAI エージェントを超えて / beyond-local-ai-agents
gawa
1
210
Geminiをパートナーに神社DXシステムを個人開発した話(いなめぐDX 開発振り返り)
fujiba
0
130
AI活用のコスパを最大化する方法
ochtum
0
360
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
270
Fundamentals of Software Engineering In the Age of AI
therealdanvega
2
310
Migration to Signals, Signal Forms, Resource API, and NgRx Signal Store @Angular Days 03/2026 Munich
manfredsteyer
PRO
0
200
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
170
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
200
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
2
470
Symfonyの特性(設計思想)を手軽に活かす特性(trait)
ickx
0
110
Feature Toggle は捨てやすく使おう
gennei
0
390
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
500
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
440
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Docker and Python
trallard
47
3.8k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
170
Being A Developer After 40
akosma
91
590k
sira's awesome portfolio website redesign presentation
elsirapls
0
200
The untapped power of vector embeddings
frankvandijk
2
1.6k
Skip the Path - Find Your Career Trail
mkilby
1
93
The SEO Collaboration Effect
kristinabergwall1
0
410
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.2k
Transcript
ؔܕॳ৺ऀʹ ͓͢͢Ί͍ͨ͠ "OCaml" @cedretaber
ࣗݾհ Job Telecommunications & Media at Work Scala as Hobbies
Ruby, D, OCaml, Erlang, &c. @cedretaber
ؔܕݴޠ
ؔܕݴޠ 最近(?) 聞 新 ⾔語 中 「関数型 性質 取 ⼊
」 多 (例 Rust, TypeScript ) 作法 設計 ⾄ 「関数型 考 ⽅ 役⽴ 」 ⾔
ؔܕݴޠ 時流 「今 関数型⾔語 知 勉強 」 ⼈ 多
ؔܕݴޠ ⼈ OCaml
OCaml
OCaml INRIA 開発 ⾔語 ML ⼀族 連
ML ⾃動定理証明 為 作 ⾔語 様々 実装・⽅⾔ 持 ( SML,
OCaml ) Hindley–Milner 式型 関数 、 、 正格評価、 化 特徴 持
OCaml Caml ML ⽅⾔ 指向 機能 追加 作 OCaml 関数型
指向 ⾔語
OCaml ※ 今回 OCaml 指向 機能 取 扱
OCaml Λ ͓͢͢Ί͢Δཧ༝
ใྔ
ใྔ 初⼼者 学習 上 ⼤切 情報量 OCaml 情報 多 、「多
」
ใྔ 公式 ⽇本語 丁寧 https://ocaml.org/learn/tutorials/index.ja.html
ใྔ 書籍 良 多 『 基礎』(浅井健⼀) 『 in OCaml』(五⼗嵐淳)
γϯϓϧ
γϯϓϧ OCaml 基本的 機能 少 変数、関数、制御式、 、 基本的 機能 組
合 書
γϯϓϧ 少 機能 ⾼ 表現⼒ 持 、 以上 機能 「
」提供 覚 少 、関数型⾔語 基礎的 考 ⽅ 機 能 集中
ڑ
ڑ 現在 主流⾔語 距離 C⾔語 Java 、 Python Ruby ⾔語
距離 ML 系 ⽂法 ⾔語 "少 " 異
ڑ OCaml ML 系 ⽂法 、先述 通 基本的 機能 ⼩
、 副作⽤ ⼿続 型⾔語⾵ 機能 併 持
ڑ 主流⾔語 対 適度 距離 持 簡単 、難 点 初⼼者向
OCaml ΛֶͿ
ֶͿ OCaml 学習 、先 述 Web 、書 籍 ⾏ 良
、 OCaml 辺 着⽬ 関数型 理解 述
ֶͿ 第⼀級関数 省略 最近 ⾔語 ⼤抵使 、 多⽤ 機 能
思
ࣜࢦ
ࣜࢦ
ࣜࢦ
ෆม
ෆม
ෆม
όϦΞϯτ
όϦΞϯτ
όϦΞϯτ
ύλʔϯϚον
ύλʔϯϚον
ύλʔϯϚον
࠶ؼ
࠶ؼ
࠶ؼ
OCamlΛ͏
͏ opam 利⽤ 、 管理 依存性管理 管理 dune 使 ⼀般
的 、 GUI 作
͏ 待 欲 最近 開発 、 作 味気 、 UI
備 GUI 開発 容 易
͏ 残念 上 OCaml 動 良 ……
None
BuckleScript
BuckleScript Facebook 開発 関数型 AltJS OCaml 改造 作 OCaml JS
、 上 動 JS 連携 容易 設計
BuckleScript npm 使 環境 構築 npm yarn 使 依存性管理 JS
利⽤
BuckleScript 、折⾓ 書 使 ?
None
ReasonReact
ReasonReact React Reason Reason 何? -> 簡単 ⾔ OCaml
ReasonReact 実質 React 、 React 知識 使 関数型 性質 React
性質 相性 好
ReasonReact BuckleScript OCaml 学 関数型 基礎 ⾝ ReasonReact 開発 関数型
応⽤ ⾝
学習環境 整 OCaml 、学習 理由 ?
OCaml BuckleScript ReasonML