Хм, можно утверждать, что было бы лучше, если бы String.to_int
из stdlib вернул необязательное целое число (none
указывает на ошибку).
Однако в Opa большинство разборов выполняется с использованием парсеров *. Например, чтобы получить вышеупомянутую функцию, вы можете написать:
string_to_int_opt(s : string) : option(int) =
Parser.try_parse(Rule.integer, s)
или, если вы хотите быть менее подробным эквивалентом:
string_to_int_opt = Parser.try_parse(Rule.integer, _)
или, если это часть более сложного анализа, вы просто использовали бы там парсер Rule.integer
.
(*) Полагаю, в этом разделе руководства могут использоваться некоторые расширения ...