簡體   English   中英

“選項列表”和“列表”之間的OCaml區別

[英]OCaml difference between 'a option list and 'a list

在OCaml頂層輸入此函數時,我得到以下結果。 輸入似乎與我相同,除了::運算符周圍的空白。 誰能解釋'a option list 'a option'a option之間的區別?

# let rec at i = function
  | [] -> None
  | h::t -> if i = 1 then Some h else at (i-1) t;;
    val at : int -> 'a option list -> 'a option = <fun>
# let rec at i = function
  | [] -> None
  | h :: t -> if i = 1 then Some h else at (i-1) t;;
    val at : int -> 'a list -> 'a option = <fun>

這是我看到的:

$ ocaml
        OCaml version 4.01.0

# let rec at i = function
  | [] -> None
  | h::t -> if i = 1 then Some h else at (i-1) t;;
val at : int -> 'a list -> 'a option = <fun>
# let rec at i = function
  | [] -> None
  | h :: t -> if i = 1 then Some h else at (i-1) t;;
val at : int -> 'a list -> 'a option = <fun>

在我看來,你的實驗在某種程度上是有缺陷的。 圍繞::的間距不會有任何區別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM