Ответ 1
Подчеркивания допускаются в числах (и игнорируются) в OCaml. Из http://www.cs.ru.nl/~tews/htmlman-3.10/lex.html#xhtoc5:
Для удобства и удобочитаемости символы подчеркивания (_) принимаются (и игнорируются) в целых литералах.
Может ли кто-нибудь объяснить это поведение OCaml?
# 1________________________________1;;
- : int = 11
(Большая строка - это последовательность символов подчеркивания: '_')
Из любопытства эта программа также компилируется под ocamlc.
Подчеркивания допускаются в числах (и игнорируются) в OCaml. Из http://www.cs.ru.nl/~tews/htmlman-3.10/lex.html#xhtoc5:
Для удобства и удобочитаемости символы подчеркивания (_) принимаются (и игнорируются) в целых литералах.
Это очень полезная функция, чтобы избежать ошибок и облегчить чтение больших целых чисел:
1_000_000_000
легче читать, чем 100000000
(вы заметили, что я забыл ноль?).
Существует несколько языков программирования, которые принимают символ подчеркивания как несущественный символ в целочисленном значении. Ada, Perl, OCaml и, возможно, некоторые другие языки используют его для разделения тысяч, миллионов и миллиардов... но вы можете использовать _
в любом месте целого числа.