Jam*_*aro 6 ocaml list pattern-matching
我知道当使用ocaml模式匹配时,可以使用h::t
当使用它时,h引用列表中的第一个元素,t将引用列表的其余部分.是否可以使用相同类型的匹配来获取列表中的最后一个元素.所以t将引用最后一个元素,h将引用列表的其余部分.
这将是有用的代码示例
let rec remove x y = match y with
[] -> x
| h::t -> remove (remove_element x (get_last y)) h
;;
Run Code Online (Sandbox Code Playgroud)
不,没有与列表末尾匹配的模式.它在OCaml中不是一个有吸引力的结构,因为它需要线性时间来查找列表的结尾.OCaml模式匹配应该很快.
您可以反转列表并匹配反向列表的开头.它只是一个比查找列表末尾慢的常数因素.