为什么我的函数使用模式匹配而不是w / if-then-else?

时间:2016-09-19 04:04:29

标签: ocaml

let rec parity n = if (n = 0) then 
                    print_string "even" else if (n = 1)
                    print_string "odd" else 
                    parity (n-2);;

与...相比。

let rec parity n = 
match n with
| 0 -> "even"
| 1 -> "odd"
| _ -> parity(n-2);;

我还是这种语言的新手。 if-then-else中的错误特别是在我的print_string语句中出现语法错误。

1 个答案:

答案 0 :(得分:3)

您的第二个if遗失了then

(偶然地,if之后的表达式不需要在OCaml中加上括号。)