在 OCaml 中
Objective Caml version 3.11.0
# let rec last l=
match l with
[] -> failwith("Empty list")
|a::[] -> a
|a::r -> last r;;
val last : 'a list -> 'a = <fun>
# last [];;
Exception: Failure "Empty list".
在 F# 中
>let rec last l =
match l with
[] -> failwith("Empty list")
| a::[] -> a
| a::r -> last r;;
val last : 'a list -> 'a
>last [];;
last [];;
^^^^^^^
stdin(8,1): error FS0030: Restriction de valeur....
>last ([]:int list);;
System.Exception: Empty list
à FSI_0002.last[a](FSharpList`1 l)
à <StartupCode$FSI_0003>.$FSI_0003.main@()
Arrêt en raison d'une erreur
我应该怎么做才能将空列表作为参数传递而不触发值限制错误?