/ / Deklarovať typ funkcie v OCaml (ako v Haskell) [duplikát] - haskell, ocaml

Deklarovať typ funkcie v OCaml (ako v Haskell) [duplicate] - haskell, ocaml

Je možné v OCaml pracovať s daným typom?
Napríklad v Haskell som schopný vytvoriť niečo také:

f :: [a] -> Int
f [] = 0
f (x:xs) = 1 + f xs

odpovede:

0 pre odpoveď č. 1

prečo to chcete robiť? Typ služby Ocaml vyberie, takže nemusíte deklarovať typ vašej funkcie (s výnimkou prípadov, keď chcete exportovať svoju funkciu). Vo vašom príklade:

let rec f a = match a with
[] -> 0
| x::xs -> 1 + f xs

Ocaml zistí, že f očakáva zoznam a výsledok bude Int.