2010-06-13 122 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