2010-06-13 72 views
2

从我的理解,我可以使用模式匹配的match ... with表达值的元组的,所以像匹配元组

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

应该是正确的,但它给了我一个语法错误,就像括号couldn “T被使用:

File "ocaml.ml", line 41, characters 14-17: Error: Syntax error: ')' expected

File "ocaml.ml", line 41, characters 8-9: Error: This '(' might be unmatched

参照上第一匹配子句..

除了,我可以避免匹配串并且应用使用排序的EVAL的比较字符串?或者直接使用比较运算符作为元组的第一个元素?

回答

7

val是OCaml中的保留关键字,因此您不能将其用作变量名称。如果你使用别的东西而不是val,它会起作用。请注意:if condition then true else false相当于condition