OCaml中如何合并模式匹配中逻辑相同的分支?
可以合并C和D分支
当然能合并,OCaml的模式匹配支持将结构相同、处理逻辑一致的多个模式放在同一个分支里,用竖线 | 分隔即可,避免重复代码。
修改后的swag函数代码如下:
let rec swag y = match y with | A _ -> 1 | B _ -> 2 | C (left, right) | D (left, right) -> swag left + swag right
这个写法和原代码逻辑完全一致,同时让代码更简洁易维护。
内容的提问来源于stack exchange,提问作者zajer
相关产品推荐
相关产品推荐

