Подбор кортежей - PullRequest
       7

Подбор кортежей

2 голосов
/ 13 июня 2010

Из того, что я понял, я могу использовать сопоставление с образцом в выражении match ... with с кортежами значений, поэтому что-то вроде

match b with
  ("<", val) -> if v < val then true else false
  | ("<=", val) -> if v <= val then true else false

должно быть правильным, но это дает мне синтаксическую ошибку, как будто скобкиневозможно использовать:

Файл "ocaml.ml", строка 41, символы 14-17: ошибка: ожидается синтаксическая ошибка: ')'

Файл "ocaml.ml", строка 41, символы 8-9: ошибка: этот '(' может не совпадать

, ссылаясь на предложение первого совпадения ..

Кроме этого, можно ли избежать сопоставления строки применяя сравнения, используя своего рода строку? Или используя непосредственно оператор сравнения в качестве первого элемента кортежа?

1 Ответ

8 голосов
/ 13 июня 2010

val является зарезервированным ключевым словом в OCaml, поэтому его нельзя использовать в качестве имени переменной.Если вы используете что-то другое вместо val, оно будет работать.

В качестве примечания: if condition then true else false эквивалентно condition.

...