一个OCaml奇怪的事情

时间:2011-02-20 02:20:08

标签: ocaml

任何人都可以解释这种OCaml顶级行为吗?

# 1________________________________1;;
- : int = 11

(大行是一系列下划线:'_')

出于好奇,这个程序也在ocamlc下编译。

3 个答案:

答案 0 :(得分:19)

OCaml中允许使用下划线(并忽略)。来自http://www.cs.ru.nl/~tews/htmlman-3.10/lex.html#xhtoc5

  

为了方便和可读性,在整数文字中接受(并忽略)下划线字符(_)。

答案 1 :(得分:5)

这是一个非常有用的功能,可以避免错误并简化大整数的读取:

1_000_000_000100000000更容易阅读(您注意到我忘了零吗?)。

答案 2 :(得分:3)

有几种编程语言接受下划线字符作为整数中的非重要字符。 Ada,Perl,OCaml以及可能的其他一些语言使用它来分离数千,数百万和数十亿......但你可以在整数内的任何地方使用_