У меня есть следующий код заявление:OCaml - Как поставить привязку let в выражении соответствия?
let execute command =
match command with
|Skip ->()
|Changestate (l,r) -> (let l = ref r)
|_ -> failwith "Not a command"
, когда я запускаю это в верхнем уровне, я получаю следующее сообщение об ошибке:
1 let execute command =
2 match command with
3 |Skip ->()
4 |Changestate (l,r) -> (let l = ref r)
5 |_ -> failwith "Not a command";;
6 Error: Syntax error
Ошибка синтаксиса, как представляется, происходит в круглых скобках в конце строка 4. Что бы я хотел, чтобы эта строка была сделана, это изменить значение в l на ссылочную переменную на r, но не вернуть фактическое значение.
Я предполагаю, что вы хотите сделать это l: = r, но мы не уверены, так как вы не предоставляете определение типа команды. – camlspotter
Это именно то, что я хотел сделать. Я отказался от типа def, чтобы попытаться сохранить пример коротким. Благодаря! –