Recursion 类型检查递归单参数和单输出函数[Ocaml]
是否有任何类型的产品可以替换?这将允许该函数循环进行类型检查?如果您向解释器提供-矩形,它将告诉您函数的类型:Recursion 类型检查递归单参数和单输出函数[Ocaml],recursion,ocaml,Recursion,Ocaml,是否有任何类型的产品可以替换?这将允许该函数循环进行类型检查?如果您向解释器提供-矩形,它将告诉您函数的类型: let rec loop (x:?) : ? = loop loop 您可以为参数和返回类型使用单独的类型变量来声明此函数,但在我看来,这与不指定类型是一样的 $ ocaml -rectypes OCaml version 4.02.1 # let rec loop x = loop loop;; val loop : 'a -> 'b as 'a = &
let rec loop (x:?) : ? =
loop loop
您可以为参数和返回类型使用单独的类型变量来声明此函数,但在我看来,这与不指定类型是一样的
$ ocaml -rectypes
OCaml version 4.02.1
# let rec loop x = loop loop;;
val loop : 'a -> 'b as 'a = <fun>
如果不允许使用-rectypes的递归类型,则无法使函数进行类型检查,因为它的类型是递归的。如果向解释器提供-rectypes,它将告诉您函数的类型:
let rec loop (x:?) : ? =
loop loop
您可以为参数和返回类型使用单独的类型变量来声明此函数,但在我看来,这与不指定类型是一样的
$ ocaml -rectypes
OCaml version 4.02.1
# let rec loop x = loop loop;;
val loop : 'a -> 'b as 'a = <fun>
如果不允许使用-rectypes的递归类型,则无法使函数进行类型检查,因为它的类型是递归的