Ocaml在线运行

版本:
运行结果
教程手册
代码仓库
极速运行
交互输入
极速运行模式,更高效的运行,点击编辑器上方的运行按钮即刻体验吧。
以下是用户最新保存的代码
你们是垃圾看你 发布于:2020-11-19 20:15 [更多]
显示目录

第一个OCaml程序



第一个OCaml程序

此示例假定您已安装OCaml 。

编译OCaml代码

创建一个名为hello.ml的新文件,其中包含以下内容:

print_string "Hello world!\n"

ocamlc是OCaml编译器。要编译并运行此脚本,请运行

$ ocamlc -o hello hello.ml

然后执行生成的二进制文件

$ ./hello
Hello world!

执行OCaml代码

您也可以运行此脚本,而无需将其编译为二进制文件。您可以通过使用ocaml ,ocaml是允许交互式使用OCaml的ocaml顶级系统。在你的shell中,只需运行即可

$ ocaml hello.ml
Hello world!

在REPL中

打开一个新shell,然后键入ocaml以打开顶层系统。进入会话后,您可以键入相同的程序:

OCaml version 4.02.1

# print_string "hello world!\n";;

按enter键评估表达式,然后触发打印。

hello world!
- : unit = ()

成功!我们看到它打印了hello world! ,但是- : unit = ()是什么? OCaml没有语句,一切都是一个表达式,可以计算某些类型的值。在这种情况下, print_string是一个函数,它接受一个string作为输入,并返回一个unit 。将unit视为只能获取一个值的类型, () (也称为unit),并表示不返回任何有意义值的已完成计算。

在这种情况下, print_string还具有将接收到的字符作为输入放在屏幕上的副作用,这就是我们看到第一行的原因。

要退出REPL,请按ctrl+D

作为Unix脚本

我们有两种方法来创建OCaml脚本。第一个使用系统顶层(由包管理器提供,如apt-get ),第二个使用OPAM提供的顶层。

使用系统顶级 打开你最喜欢的编辑器,然后写:

#!/usr/bin/ocaml

print_string "hello worlds!\n";;

之后,您可以使用chmod +x your_file.ml ./your_file.ml , ./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替换shebang来使用utop而不是vanilla toplevel。

UTOP

utop是另一个ocaml toplevel发布 - 这意味着,你需要下载并安装utop (简单的方法是使用OPAM: opam install utop )。 utop具有许多功能,如历史,完成和交互式线编辑。

所以,如果你想要一个简单的方法来尝试一些ocaml代码, utop是最好的。

为什么utop而不是ocaml ?

如果你想要一个像上面这样的ocaml脚本, utop和ocaml没有太大的区别。但是OCaml社区中常见的事情是使用utop而不是ocaml 。

事实上, ocaml REPL由ocaml分布提供。因此,此REPL遵循编译器的发布周期,如果您需要一些额外功能,则需要等待下一版本的编译器。正如我们所解释的那样, utop不在发行版中,所以发布周期不受编译器的约束,如果你想要一个额外的功能,你将更有可能尝试在utop推送这个功能而不是ocaml :)!

对于这一点(以及历史特征),ocaml社区中的大多数人更喜欢使用utop不是ocaml 。

由JSRUN为你提供的Ocaml在线运行、在线编译工具
        JSRUN提供的Ocaml在线运行,Ocaml 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。

title

使用此草稿 删除草稿

  • 00:23
注册登录后可减少验证码的弹出,点击前往 注册 | 登录

皮肤:

运行模式:

嵌入代码 iframe嵌入: