作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一边玩-rectypes
在某些时候选择 OCaml 我只是迷路了。
这个表达式几乎可以打字:
# fun x -> x x;;
- : ('a -> 'b as 'a) -> 'b = <fun>
# (fun x -> x x) (fun x -> x x);;
C-c C-cInterrupted.
# fun _ -> (fun x -> x x) (fun x -> x x);;
- : 'a -> 'b = <fun>
最佳答案
让我们首先尝试评估您的表达式。
# (fun x -> x x) (fun x -> x x);;
# let x = (fun x -> x x) in x x;; (* applying the function on the left *)
# (fun x -> x x) (fun x -> x x);; (* inlining the let-binding *)
(* We came back to our original state, infinite loop *)
ocamlc -i
获取表达式的类型,而无需对其进行评估。
$ echo 'let x = (fun x -> x x) (fun x -> x x)' > rectypes.ml
$ ocamlc -i -rectypes rectypes.ml
val x : 'a
'a
类型的值(这通常意味着“这个表达式永远不会返回”)。
# let x =
let rec f () = f () in
f ();;
'a -> 'b
类型。
关于OCaml 的 rectype 推断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50510630/
允许递归类型的 OCaml 的 -rectypes 的 GHC 等价物是什么?我在文档中没有看到。是隐藏功能吗? 最佳答案 不幸的是,没有一个,所有递归都必须经过一种数据类型。但是,如果您愿意忍受一些
一边玩-rectypes在某些时候选择 OCaml 我只是迷路了。 这个表达式几乎可以打字: # fun x -> x x;; - : ('a -> 'b as 'a) -> 'b = 但是这里 O
该字段位于 linux-4.16.12\include\linux\kfifo.h 中: #define __STRUCT_KFIFO_COMMON(datatype, recsize, ptrtyp
我是一名优秀的程序员,十分优秀!