据我所知,我可以在带有值元组的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:错误:这'(’可能是不匹配的‘
关于第一个匹配条款..。
除此之外,我是否可以避免匹配字符串,并使用字符串的形式进行比较?还是直接使用比较运算符作为元组的第一个元素?
发布于 2010-06-13 17:33:34
val
是OCaml中的保留关键字,因此不能将其用作变量名。如果您使用的是其他的东西,而不是val
,它就会起作用。
顺便提一句:if condition then true else false
等同于condition
。
https://stackoverflow.com/questions/3033190
复制相似问题