OCaml

一种工业级强度的函数式编程语言,注重表达性和安全性

# let square x = x * x
val square : int -> int = < fun >
# square 3
- : int = 9
# let rec fac x =
if x <= 1 then 1 else x * fac (x - 1)
val fac : int -> int = < fun >
# fac 5
- : int = 120
# square 120
- : int = 14400
              
illustration of a cup

OCaml 编译器因其在编程语言软件方面的杰出贡献而获得了SIGPLAN认可

十四位核心 OCaml 开发者因其对该项目的重大贡献而被推介

行业领导者的信赖

这些公司和组织每天都在依赖 OCaml,还有数千其他开发者。查看 成功案例
Facebook
Microsoft
Docker
Jane Street
Bloomberg
Tezos
Ahrefs

为什么选择 OCaml?

可靠性

强大而简单的类型安全

OCaml 的轻量级但极具表现力的类型系统在编译时捕获更多错误,而垃圾回收允许您专注于应用程序逻辑而不是内存管理。大型复杂代码库变得易于维护和重构。OCaml 使您能够在不断变化的需求环境中,创建具有最高安全性和可靠性要求的关键任务软件!

An example OCaml program defining nested lists in OCaml. A terminal output also shows the compiler catching a type error where a pattern-match was not exhaustive.
生产力

一流的编辑器和工具

OCaml 与 VS Code、Vim 或 Emacs 深度集成,提供类型检查、自动完成等功能。Opam 是一个流行的包管理器;Utop 是一个强大的交互式 REPL;odoc 是一个易于使用的文档生成器,OCaml 程序员可以使用完整的现代开发体验。

VS Code
Vim
Emacs

性能
快速编译器和应用程序

OCaml 在不牺牲开发体验的情况下提供出色的运行时性能:字节码编译器生成小型、高度可移植的可执行文件,速度极快;本机代码编译器生成高效的机器代码。尽管专注于性能,但 OCaml 编译器始终保持出色的可靠性和稳定性

异常的稳健性和可靠性

尽管进行了所有这些测试,我们从未从内部测试或现场报告过任何 XenServer 缺陷,这些缺陷可以追溯到 OCaml 运行时或编译器中的错误。(在开发过程中,我们确实发现了一个次要的编译器错误,当编译具有大量函数参数的自动生成的 OCaml 代码时触发,但我们在报告此错误时,该错误已在开发分支中修复,因此不需要与 INRIA 的维护人员进行交互。)
-- Scott, D. & Sharp, R. & Gazagnaire, T. & Madhavapeddy, A. (2010). 在工业产品组中使用函数式编程:视角和看法。 ACM SIGPLAN 通告. 45. 87-92. 10.1145/1863543.1863557.

版本

最近版本

5.2.0 (2024-05-13)

  • 重新引入 GC 压缩
  • 恢复 POWER 64 位的本机后端
  • 线程清理器支持
  • 新的 Dynarray 模块
  • 新的 -H 标志用于隐藏的包含目录
  • 针对开发工具的项目范围的事件元数据支持
  • 原始标识符
  • 类型表达式中的局部打开
  • 标准库中约 20 个新函数
  • 运行时中许多修复和改进
  • 许多错误修复

5.1.1 (2023-12-08)

  • 标准库中删除了 Marshall.Compression 标志
  • 5.1.0 的错误修复
查看所有版本

变更日志

版本和更新

编译器和平台工具

OCaml 5.2.1 - 发布候选版本

OCaml 版本 5.2.1 的发布即将到来。OCaml 5.2.1 是一个安全的但重要的运行...

查看完整变更日志
OCaml 5.3.0 - 第一个 Beta 版本

在发布 OCaml 5.3.0 的第一个 Alpha 版本后的一个月半,OCaml 5.3....

查看完整变更日志
opam 2.3.0~rc1

_欢迎在 [讨论](https://discuss.ocaml.org/t/ann-opam-2-3-0-rc1/1553...) 上对这篇文章发表反馈。

查看完整变更日志
查看完整变更日志

OCaml 用户

OCaml 被数千名开发者、公司、研究实验室、教师等等使用。了解它如何适应您的用例。

面向教育工作者

OCaml 具有数学根源,始终与学术界有着密切的联系。它在世界各地的大学中教授,并积累了不断增长的研究成果。详细了解定义 OCaml 文化的学术严谨性。

了解更多

面向工业用户

OCaml 的强大编译时保证和高性能使公司能够提供可靠且快速的服務和产品。详细了解 OCaml 如何在行业中使用:探索成功案例并发现使用 OCaml 的公司。

了解更多

OCaml 包

探索数千个开放源代码的 OCaml 包及其文档。

探索包