使用Reason显示类型和值

时间:2017-11-22 15:36:17

标签: types ocaml read-eval-print-loop reason

OCaml REPL显示任何表达式的值和类型。例如,评估:

let rec map f = function
    | [] -> []
    | x::l -> f x :: map f l;;

给出:

val map : ('a -> 'b) -> 'a list -> 'b list = <fun>

这对于教授语言是无价的。

我正在考虑转换为Reason,但您将如何获得相同的信息?

let rec map = (f) =>
  fun
  | [] => []
  | [x, ...l] => [f(x), ...map(f, l)];

Try Reason没有显示任何类型,我不确定是否存在原因的REPL。

1 个答案:

答案 0 :(得分:4)

rtop是一个随reason-cli附带的顶级(OCaml-lingo中的REPL),它实际上只是utop的一个薄包装器。它会打印出这样的类型:

let map: (('a) => 'b, list('a)) => list('b) = <fun>;

在VSCode中,merlin还会在每个绑定上方的“CodeLens”中为您提供let绑定类型。

enter image description here